簡體   English   中英

Excel VBA遍歷單元格並替換其值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM