Excel VBA在单元格中循环并replace它们的值

我正在尝试构build一个循环遍历一列单元格的macros,并用该国的名称replace该单元格中的两个字母的国家/地区代码。 但是,当我尝试运行macros时,我得到一个对象没有find错误。

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"

我相信你有一个伟大的理由使用这个macros,但你可能想看看LOOKUP或VLOOKUP工作表函数作为一种方式来做这样的事情,而不写一个macros。

您应该可以通过在编辑器中单击macros文本的左侧来inputdebugging器,并在该行上放置一个红点

 For counter = 2 To 20 

然后你可以通过你的macros,直到你的错误。

或者,您可以将error handling添加到您的macros

 On Error Goto Failed 

在顶部和底部添加

 Failed: 'handle error here 

curCell.Text调用(curCell为null,没有或无效,因此调用.Text失败)或ActiveSheet.Cells调用(不知道是否会发生这种情况),“Object not found”