ভিবিএ - লুপ এবং 2D অ্যারে জন্য সঙ্গে মিশ্রিত ত্রুটি টাইপ করুন


0

আমি যা করার চেষ্টা করছি তা হল একটি অ্যারের অনুলিপি অ্যারেতে অনুলিপি করা, যখন আমি মূল অ্যারের আকার পরিবর্তন করব এবং তারপরে অস্থায়ী অ্যারেটিকে পুনরায় আকারকৃত মূলতে অনুলিপি করব।

কিন্তু লুপ রান করার সময় আমি "টাইপ মিলম্যাচ" ত্রুটিটি দৌড়ে যাচ্ছি।

আমি এই ভুল পেতে ভুল করছেন কি?

Public Sub UpdateNamesPaid(NameValue As String, Paid As String)

    NamesPaid(NamesPaidSize, 0) = NameValue
    NamesPaid(NamesPaidSize, 1) = Paid

    NamesPaidSize = NamesPaidSize + 1
    Dim TempArray() As Variant
    ReDim TempArray(0 To NamesPaidSize, 0 To 1)

    Dim i As Integer
    Dim j As Integer

    i = 0
    j = 0

    For i = 0 To UBound(NamesPaid(i, j)) 

        For j = 0 To UBound(NamesPaid(i, j))

            TempArray(i, j) = NamesPaid(i, j)

        Next j
    Next i

    ReDim NamesPaid(0 To NamesPaidSize, 0 To 1)
    NamesPaid() = TempArray()

End Sub

বন্ধ বিষয় ... এটি স্ট্যাক ওভারফ্লো এবং SuperUser নয়
ethanwu10

@ ইথানওয়ু 10 এটি সঠিক। আপনি এটি স্থানান্তরিত করতে ভোট দিতে হবে তাই OP মনে হয় না তারা মনোযোগ পেতে ডবল পোস্ট প্রয়োজন।
CharlieRB

1
@ ইথানওয়ু 10 & amp; চার্লিআরবি: ভিবিএ এখানে বন্ধ বিষয় নয়। দেখ meta.superuser.com/questions/4565/... । এটি বন্ধ, স্থানান্তরিত, পুনরায় পোস্ট করা, নিচু, ভাঁজ করা, বা বিকৃত করা উচিত নয়।
fixer1234

উত্তর:


0

আপনি কিভাবে ভুল বুঝেছেন UBound() ফাংশন এর পরামিতি বোঝানো হয়: প্রথম প্যারামিটারটি অ্যারের নাম, দ্বিতীয়টি আপনি যা খুঁজছেন তা মাত্রা।
সঠিক কোড হবে:

    Public Sub UpdateNamesPaid(NameValue As String, Paid As String)
    Dim i As Long, j As Long
    Dim NamesPaidSize As Long
    Dim NamesPaid() As String
    ReDim NamesPaid(0 To 0, 0 To 1)

    NamesPaidSize = LBound(NamesPaid, 1) ' or whatever you meant...
    NamesPaid(NamesPaidSize, 0) = NameValue
    NamesPaid(NamesPaidSize, 1) = Paid

    Dim TempArray() As String
    ReDim TempArray(0 To NamesPaidSize, 0 To 1)


    For i = LBound(NamesPaid, 1) To UBound(NamesPaid, 1)
        For j = LBound(NamesPaid, 2) To UBound(NamesPaid, 2)
            TempArray(i, j) = NamesPaid(i, j)
        Next j
    Next i

    NamesPaidSize = NamesPaidSize + 1
    ReDim NamesPaid(0 To NamesPaidSize, 0 To 1)

   ' NamesPaid = TempArray
    For i = LBound(TempArray, 1) To UBound(TempArray, 1)
        For j = LBound(TempArray, 2) To UBound(TempArray, 2)
             NamesPaid(i, j) = TempArray(i, j)
        Next j
    Next i
End Sub

সতর্কতা অবলম্বন করুন যে এটি 1 এর বৃদ্ধির জন্য খুব অদক্ষ হতে পারে। আপনি আকার 10 এর প্রাথমিক অ্যারে তৈরি করতে পারেন, এটি পূরণ করুন, তারপর কপি ধাপে রাখুন এবং অন্য 10 বৃদ্ধি করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.