Excel VBA通过细胞循环并替换其值
-
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是无效的,否或无效的,因此在其上呼叫.TEXT是失败的)或ActiveSheet.cell.cells call(不确定是否会发生这种情况)
不隶属于 StackOverflow