我正在尝试计算行数,直到在特定列中找到字符串为止。
我要查找的字符串是在从中运行代码的工作簿中找到的。然后,我要使用该字符串,并尝试将其与其他工作簿的列中的单元格值进行匹配。下面的代码是我想出的,但是,即使我知道该字符串确实存在于其他工作簿中,也始终会生成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
我尝试过在线查找类似的问题,但是所有这些问题都是通过计算同一工作簿中的行来实现的。关于我做错事情的任何想法吗?
答案 0 :(得分:2)
freq_2
的第二个参数是Match
,因此删除Range
。
.Value
删除i = Application.WorksheetFunction.Match(n, wkb.wks.Range("A:A"), 0)
语句,错误消息将指示问题。除非您已经对代码进行了全面的测试并且确信可以忽略任何(预期的)错误,否则请不要引入On Error
。即使这样,也应该很少使用。
还请将变量重命名为有用的内容。