excel vba looping عبر الخلايا واستبدال قيمها
-
30-09-2019 - |
سؤال
أحاول بناء ماكرو يتجول عبر عمود من الخلايا ويحل محل رمز بلد من حربين في تلك الخلية باسم ذلك البلد. ومع ذلك ، أحصل على كائن لم يتم العثور على خطأ عندما أحاول تشغيل الماكرو.
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 (ليس متأكدًا مما إذا كان يمكن أن يحدث)