我在两个不同的工作簿中使用了两个不同的工作表。我正在使用第一个工作表中的数据来填写第二个工作表。
我在Workbook A中有两个列表(称为x和y),在Workbook B中有两个列表。我正在比较Workbook A和B中的列表x。如果WorkbookA-ListX中的任何单元格与任何列表匹配在WorkbookB-ListX中的单元格中,我将WorkbookA-ListY中的单元格值复制到WorkbookB-ListY中的单元格。
我在比较原来的两个列表时遇到了麻烦。我正在考虑使用WorkbookA-ListX中的第一个值并将其与数组WorkbookB-ListX进行比较以查看是否存在任何匹配,然后只增加WorkbookA-ListX。
列表基本上是同一列中的一系列值,因此B3:B53例如是列表的大小。我使用这个link来帮助我,但是当我到达第一个“For iRow ...”时,我一直收到错误代码,说“运行时错误13,类型不匹配”。我该怎么办?< / p>
page?.Controls.Add(new DnnCssInclude
{
...
});
答案 0 :(得分:0)
你实际上是在使用范围,而不是数组。你声明了 Dim varSheet0,varSheet1 As Variant 代替 Dim varSheet0()as Variant,varSheet1()As Variant
那就是说,你真的不需要数组。
但我不认为您将WALX中的每个值与整个 WBLX进行比较。
这会有用吗?
For iRow = 1 To varSheet0.Rows.Count
iRowResult = ""
On Error Resume Next
'Where is varSheet0 value in varSheet1?
iRowResult = WorksheetFunction.Match(varSheet0.Cells(iRow).Value, varSheet1, 0)
On Error GoTo 0
If iRowResult = "" Then
'There's no match in varSheet1. Do what you need.
End If
Next iRow