在列中遍历#N / A并在所有#N / A上插入公式

问题描述

所以我有一列有接近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)