VBA对行进行计数,直到匹配另一个工作簿中的字符串

时间:2019-03-12 15:16:47

标签: excel vba

我正在尝试计算行数,直到在特定列中找到字符串为止。 我要查找的字符串是在从中运行代码的工作簿中找到的。然后,我要使用该字符串,并尝试将其与其他工作簿的列中的单元格值进行匹配。下面的代码是我想出的,但是,即使我知道该字符串确实存在于其他工作簿中,也始终会生成i=0

    Set wkb = Excel.Workbooks("workbook1.xlsm")
    Set wks = wkb.Worksheets("Sheet1")

    n = ThisWorkbook.Sheets("Sheet1").Cells(x, "D").Value
    i = 0
    On Error Resume Next
    i = Application.WorksheetFunction.Match(n, wkb.wks.Range("A:A").Value, 0)
    On Error GoTo 0

我尝试过在线查找类似的问题,但是所有这些问题都是通过计算同一工作簿中的行来实现的。关于我做错事情的任何想法吗?

1 个答案:

答案 0 :(得分:2)

freq_2的第二个参数是Match,因此删除Range

.Value

删除i = Application.WorksheetFunction.Match(n, wkb.wks.Range("A:A"), 0) 语句,错误消息将指示问​​题。除非您已经对代码进行了全面的测试并且确信可以忽略任何(预期的)错误,否则请不要引入On Error。即使这样,也应该很少使用。


还请将变量重命名为有用的内容。