我想将单元格A(1..17)的值与B(1..17)进行比较,如果值相同则为B(1..17)添加注释“Found”。< / p>
以下代码在Excel 2003中不起作用
For i = 1 To 17
If Range("A" & i).Value = Range("B" & i).Value Then
Range("B" & i).AddComment ("Found")
End If
Next i
我收到错误: 运行时错误'13':类型不匹配
由于
答案 0 :(得分:1)
我找到了:
If Range("A" & i).Text = Range("B" & i).Text Then
答案 1 :(得分:0)
让我们在这里添加你没有告诉我们的内容。这是一个简单的复制品。
1
。=#NULL!
重新编码的代码:
Public Sub HasTroubleWithSpreadSheetErrors()
If Range("A1").Value = Range("B1").Value Then ' Error #13 Mismatched Type here
Debug.Print "Found"
End If
正如您已经发现的那样,您可以通过比较.Text
属性而不是.Value
属性来解决这个问题。
If Range("A1").Text = Range("B1").Text Then ' no error
但作为替代方案,您还可以使用IsError
函数检查是否有任何单元格出错。
If IsError(Range("A1")) Or IsError(Range("A2")) Then
If Range("A1").Value = Range("B1").Value Then
答案 2 :(得分:0)
您无法在已存在的评论中添加评论。听起来这个评论可能已经存在于你循环的前一次迭代中。我建议始终删除Column B
中的“已发现”评论,以允许此子/循环在每次运行时在Column B
中提供准确的信息。
Sub test()
For i = 1 To 17
' clear the comments, you cant add a new comment when one already exists.
Range("B" & i).ClearComments
If Range("A" & i).Value = Range("B" & i).Value Then
Range("B" & i).AddComment ("Found") ' if this cell contains a comment from a previous iteration, it throws an exception.
End If
Next i
End Sub