我有一个子程序,可读取文本文件并将数据导入“定义的名称”单元格。文本文件中有一些我不需要的数据,因此,如果该子程序找不到匹配的单元格,则只需忽略它即可。
但是,当函数找到不存在的定义名称时,将引发1004错误。将On Error Resume Next
放在Do While Not
之后可解决此问题,但这更多是创可贴解决方案。
以下是引发错误的函数:
If Not ActiveSheet.Range(cellName) Is Nothing Then
Set TxtRng = ActiveSheet.Range(cellName)
If TxtRng = ActiveSheet.Range(cellName) Then
TxtRng.Value = getPrice
End If
End If
我也尝试过此版本的功能,但仍然会导致1004错误:
If ActiveSheet.Range(cellName) Is Nothing Then
''Do Nothing here
Else
Set TxtRng = ActiveSheet.Range(cellName)
If TxtRng = ActiveSheet.Range(cellName) Then
TxtRng.Value = getPrice
End If
End If
答案 0 :(得分:3)
您必须使用错误处理,因为尝试使用不存在的范围名称会引发错误。
Dim TxtRng As Range
Set TxtRng = Nothing 'if you use this code in a loop make sure you initialize it as nothing within your loop. Otherwise you can omit this line.
On Error Resume Next
Set TxtRng = ActiveSheet.Range(cellName)
On Error Goto 0 're-activate error reporting
If Not TxtRng Is Nothing Then
'your code
End If