VBA查找缺少的文本字符串并计算缺少的值

VBA查找缺少的文本字符串并计算缺少的值,vba,Vba,您好,我正在尝试使用VBA代码查找我在另一个工作簿的代码中定义的特定字符串文本,从我定义的列表中查找缺失值的数量文本,并生成一份报告文本缺失了多少值,如果有任何值错误与文本不匹配,有多少值错误。这是我写的一些代码,但我正在努力找到一个代码来查找定义的文本,并生成一份关于丢失仪器数量和错误仪器nr的报告:任何建议都将受到高度赞赏 Dim mypath As String Dim folderpath As String Dim filename As String Dim MyBook As Wo

您好,我正在尝试使用VBA代码查找我在另一个工作簿的代码中定义的特定字符串文本,从我定义的列表中查找缺失值的数量文本,并生成一份报告文本缺失了多少值,如果有任何值错误与文本不匹配,有多少值错误。这是我写的一些代码,但我正在努力找到一个代码来查找定义的文本,并生成一份关于丢失仪器数量和错误仪器nr的报告:任何建议都将受到高度赞赏

Dim mypath As String
Dim folderpath As String
Dim filename As String
Dim MyBook As Workbook, newbook As Workbook
Set MyBook = ThisWorkbook
Dim file As String, sheetdata As String
Dim ws As Worksheet
Dim x As Workbook
Dim y As Workbook
Dim FindString As String
Dim Rng As Range
Dim findrow As Integer
Dim i As Integer
Dim finalrow As Integer
Dim bottomA As Integer
Dim c As Range
Dim TESTMarketFI2015submitted As Worksheet
Dim FI As Worksheet
Dim a As Range
Dim col As Integer
Dim row As Integer
Dim cell As Integer
Dim inputbox As Variant
Dim application As String
Dim value As String

Dim bond As String
Dim promissoryNote As String
Dim loan As String
Dim certificatesOfDeposit As String
Dim embededOptionBond As String
Dim repo As String
Dim bondOption As String
Dim bondForward As String
Dim securedBond As String
Dim inflationLinkedBond As String
Set x = Workbooks.Open(filename:="Z:\Profiles\My Documents\MAPPING\TEST MAPPING TABLES\TEST_Market_FI_2015 - submitted.csv")
worksheets("TEST_Market_FI_2015 - submitted").Range("A:A").Select

For Each c In Sheets("TEST_Market_FI_2015 - submitted").Range("A:A")

Next

If value = ("bond,promissoryNote,loan,certificatesOfDeposit,embededOptionBond,repo,bondOption,bondForward,securedBond,inflationLinkedBond") Then
c.EntireRow.Copy Worksheets("TEST_Market_FI_2015 - submitted").Range("A:A" & Rows.Count).End(xlUp).Offset(1)

    Worksheets("FI").Select

    Range("A2").End(xlUp).Offset(i, 0).PasteSpecial
Else
    MsgBox "Nothing found under instrument"
End If

End Sub
如果需要,你需要把下一个放在末尾。当它检查值时,它不知道它实际上在检查什么。应该是:

For Each c In Sheets("TEST_Market_FI_2015 - submitted").Range("A:A")

    If c.value = ("bond,promissoryNote,loan,certificatesOfDeposit,embededOptionBond,repo,bondOption,bondForward,securedBond,inflationLinkedBond") Then

        c.EntireRow.Copy Worksheets("TEST_Market_FI_2015 - submitted").Range("A:A" & Rows.Count).End(xlUp).Offset(1)

        Worksheets("FI").Select

        Range("A2").End(xlUp).Offset(i, 0).PasteSpecial
    Else
        MsgBox "Nothing found under instrument"
    End If

Next
所以现在将要发生的是,它将在您选择的范围内循环通过每个单元格,并检查它当前正在查看的单元格的c值。如果c的值与您的字符串匹配,那么它将执行一些操作

但是,我怀疑您要查找的单元格值是否真的是逗号分隔的字符串。您是否试图单独搜索所有这些字符串,这意味着如果c.value是您的字符串中的任何一个单词,那么它应该可以执行这些操作。如果是这样的话,可以选择创建一个字符串数组,并在数组中查找c.value