HI我在尝试放置一个VBA代码来查找我在另一个工作簿中的代码中定义的特定字符串(文本)从我定义的列表中找到缺失值文本的数量并生成报告的数量值文本丢失,如果任何值错误与文本不匹配有多少错误。这是我已经提出的一些代码,但我正在努力寻找一个代码来查找已定义的文本并生成缺失工具数量和错误工具数量的报告:任何建议都将受到高度赞赏。
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
答案 0 :(得分:1)
您需要将next
置于End If
之下。当它检查值时,它不知道它实际检查的是什么。它应该是:
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
的值与您的字符串匹配,那么它将do stuff
。
但是,我怀疑你正在寻找的单元格值是一个真正的逗号分隔字符串。您是否尝试单独搜索所有这些字符串,这意味着如果c.value是()
中的任何字词,那么它应该do stuff
。如果是这样,一个选择就是创建一个字符串数组,然后在数组中查找c.value
。