用于查找包含" #N / A"的单元的VBA代码在B列中,将A列中的相应单元格值复制到Text文件中

时间:2016-04-20 09:49:34

标签: excel vba excel-vba

我的要求是使用vba对2个工作簿中的数据进行vlookup。现在在vlookup的输出中有一些不匹配的单元格,因此它们的值是" #N / A"

现在如何选择相应的A列值,如果"#N / A"列B中存在并将它们写入文本文件。

示例excel文件

Column A    Column B
A           1
B           #N/A
C           3
D           4
E           #N/A

以下输出应写在文本文件中。

B
D

请通过VBA帮我解决这个问题。 TIA

2 个答案:

答案 0 :(得分:0)

试试这个:

Sub ToTextFile()
    Dim LastRow As Long, i As Long
    Dim str As String, strFile_Path As String
    Dim strTxt As Variant

    LastRow = Cells(Rows.Count, "A").End(xlUp).Row

    For i = 1 To LastRow
        If (Application.WorksheetFunction.IsNA(Cells(i, 2).Value)) Then
            If str = "" Then
                str = Cells(i, 1).Value
            Else
                str = str & "," & Cells(i, 1).Value
            End If
        End If
    Next i

    strTxt = Split(str, ",")

    strFile_Path = "C:\temp\test.txt" 'Change to your file path
    Open strFile_Path For Output As #1

    For i = 0 To UBound(strTxt)
        Print #1, strTxt(i)
    Next i
    Close #1

End Sub

答案 1 :(得分:0)

添加一个新的C列,每个单元格都有数组公式(粘贴后按住ctrl +输入):

=IF(ISNA(B:B),A:A,"")

然后文本文件的正文可以是以下字符串

Debug.Print Join$(Application.Transpose( _
    Application.Index(Worksheets("Sheet1").UsedRange, 0, 3)), vbNewLine)