Excel VBA//如何转换具有特定名称或范围的N/A

Excel VBA//如何转换具有特定名称或范围的N/A,excel,vba,Excel,Vba,我有以下表格中的数据 City Name - City Code Delhi - DEL Mumbai - #N/A Chennai - #N/A 有N个数据,希望用城市名称替换N/a值。例如,第二排n/a将由孟买取代,第三排由钦奈取代。 请告知。假设您的数据被相应地放在A列和B列中,下面的代码将解决您的问题: Sub errors() i = 1 Do Until ActiveSheet.Range("A" & i).Value = "" If Left(CStr(Rang

我有以下表格中的数据

City Name - City Code
Delhi     - DEL
Mumbai -  #N/A
Chennai - #N/A
有N个数据,希望用城市名称替换N/a值。例如,第二排n/a将由孟买取代,第三排由钦奈取代。
请告知。

假设您的数据被相应地放在A列和B列中,下面的代码将解决您的问题:

Sub errors()
i = 1
Do Until ActiveSheet.Range("A" & i).Value = ""
If Left(CStr(Range("B" & i).Value2), 5) = "Error" Then Range("B" & i) = Range("A" & i).Value
i = i + 1
Loop
End Sub

这假设您的数据在A列和B列中,A列中的值是常量:

之前:

及之后:


不适用是由于单元格中的公式导致的错误吗?是的,这是错误。但我已经用“特殊粘贴”转换成了文本。在你这么做之前,将公式包装在处理错误的IFERROR中。我使用了以下代码:Set rng=Worksheets1.RangeA1:A2用于rng中的每个单元格If Application.WorksheetFunction.IsNAcell然后cell.value=0 End如果下一个代码将n/a值转换为0,但我想用特定的城市名称替换它。请输入任何代码尝试在原始问题中使用,而不是在注释中。从出现错误的行中附加数据。抱歉,亚当,我无法获取。请重复。如果可能,请帮助我。我正在使用代码子jk Dim lRow作为Long Dim iCntr作为Long lRow=1作为iCntr=lRow到10000步骤1如果CellsiCntr,1=Jambi,ID,然后是RowsiCntr。删除End如果下一个End子数据雅加达,ID雅加达,ID雅加达,ID Jambi,ID Jambi,ID雅加达,ID Jambi,ID仰光,MM仰光,MM Jambi,ID Jambi,ID Jambi,ID仰光,MM仰光,MM代码删除数据为Jambi,ID的整行,但例如循环删除第3行和第4行变为第3行。因此如何才能再次删除第三行?
Sub fixup()
    Dim r As Range
    For Each r In Columns(1).SpecialCells(2)
        If InStr(r.Offset(0, 1).Text, "#N/A") > 0 Then
            r.Offset(0, 1).Value = r.Value
        End If
    Next r
End Sub