问题描述
所以我有一列有接近100k的条目。我想遍历列中的每个#N / A并用公式替换#N / A。我找到了#N / A的发现,并且可以正常插入公式,但是循环中似乎有一个错误,我没有得到。我的代码如下:
Sub test()
Dim findrow As Double
Dim lstrow As Double
Dim row As Double
Dim length As String
Dim emp As Variant
Dim Err As String
Err = "#N/A"
emp = " "
row = 1
lstrow = Range("G" & Rows.Count).End(xlUp).row
Workbooks("(Test)").Activate
For row = 1 To lstrow
If IsError(ActiveWorkbook.Sheets("1").Range("F" & row).Offset(offsetCount,0).value) Then
If (ActiveWorkbook.Sheets("1").Range("F1" & row).Offset(offsetCount,0).value = CVErr(xlErrNA)) Then
findrow = global_searchByRow_inCol("#N/A",Workbooks("(Test)"),6)
End If
End If
If Not findrow = 0 Then
Cells(findrow,6).formula = "=IF(ISNA(INDEX(august.csv!$C:$C,MATCH(R" & findrow & ",august.csv!$D:$D,0)))= TRUE," & emp & ",(INDEX(august.csv!$C:$C,0))))"
End If
Next row
我在行中收到错误type mismatch
If Range("F" & row) = Err Then
这是正确的行,但不执行Then
。如果我调试并手动将其放下一行,它将再次完美运行,直到下一个#N / A。我什么都不来?
编辑:错误是类型不匹配且offset
为空
解决方法
我认为您需要这个:
latitudeEnd = latitudeStartDouble + ...etc...
使用If Range("F" & row).Text = Err Then
而不是.Text
来避免和出错,如果您使用.Value
,则该范围只给您范围内的文本文本作为字符串,无论范围有多大。 / p>
在该行(.Text
)版本中,您要说的是:
如果整个单元格的F&row等于#N / A,并且这是错误的,因为范围是对象,并且您正在询问范围是否等于文本(#N / A)