[英]Excel VBA Looping through cells and replacing their values
我正在嘗試建立一個宏,該宏循環通過一列單元格並將該單元格中的兩個字母的國家/地區代碼替換為該國家/地區的名稱。 但是,當我嘗試運行宏時,出現未找到對象錯誤。
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
Text屬性是只讀的-您無法設置。 分配給Value屬性,它應該可以工作(例如curCell.Value = "Japan"
)
我確定您有充分的理由為此使用宏,但是您可能希望研究LOOKUP或VLOOKUP工作表函數,以作為無需編寫宏即可執行此類操作的一種方式。
您應該能夠通過在編輯器中單擊宏文本的左側並在該行上放置一個紅點來進入調試器
For counter = 2 To 20
然后,您可以單步執行宏,直到出現錯誤。
或者,您可以向宏添加錯誤處理
On Error Goto Failed
在頂部和結束子之前添加
Failed:
'handle error here
可能是通過curCell.Text調用(curCell為null,無內容或無效,因此調用.Text失敗)或ActiveSheet.Cells調用(不確定是否會發生)引起“找不到對象”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.