سؤال

أحاول بناء ماكرو يتجول عبر عمود من الخلايا ويحل محل رمز بلد من حربين في تلك الخلية باسم ذلك البلد. ومع ذلك ، أحصل على كائن لم يتم العثور على خطأ عندما أحاول تشغيل الماكرو.

Sub ChangeCountryText()
'
' ChangeCountryText Macro
' Changes country codes
'
    For counter = 2 To 20
        Set curCell = ActiveSheet.Cells(counter, 1)
        Select Case curCell.Text
            Case "JP"
                curCell.Text = "Japan"
            Case "FR"
                curCell.Text = "France"
            Case "IT"
                curCell.Text = "Italy"
            Case "US"
                curCell.Text = "United States"
            Case "NL"
                curCell.Text = "Netherlands"
            Case "CH"
                curCell.Text = "Switzerland"
            Case "CA"
                curCell.Text = "Canada"
            Case "CN"
                curCell.Text = "China"
            Case "IN"
                curCell.Text = "India"
            Case "SG"
                curCell.Text = "Singapore"
        End Select
    Next counter

End Sub
هل كانت مفيدة؟

المحلول

خاصية النص هي قراءة فقط - لا يمكنك تعيينها. تعيين لخاصية القيمة ويجب أن تعمل (على سبيل المثال curCell.Value = "Japan")

نصائح أخرى

أنا متأكد من أن لديك سببًا رائعًا لاستخدام ماكرو لهذا الغرض ، ولكن قد ترغب في النظر في وظائف ورقة العمل أو Vlookup كوسيلة للقيام بشيء مثل هذا دون كتابة ماكرو.

يجب أن تكون قادرًا على إدخال مصحح الأخطاء من خلال النقر على يسار نص الماكرو في المحرر ووضع نقطة حمراء على السطر

For counter = 2 To 20

ثم يمكنك التنقل عبر الماكرو الخاص بك حتى تصل إلى الخطأ.

بدلاً من ذلك ، يمكنك إضافة معالجة الأخطاء إلى الماكرو الخاص بك

On Error Goto Failed

في الأعلى وقبل الإضافة الفرعية النهائية

Failed: 
'handle error here

من المحتمل أن يكون "الكائن غير الموجود" من استدعاء curcell.text (Curcell فارغ ، لا شيء ، أو غير صالح ، لذلك فإن الاتصال. النص عليه فشل) أو استدعاء activesheet.cells (ليس متأكدًا مما إذا كان يمكن أن يحدث)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top