【发布时间】:2018-03-05 20:56:02
【问题描述】:
我目前正在循环浏览 Excel 中的工作表并将键值与另一个工作表链接,然后再将两者中的数据输入到我当前的工作簿中。 但是,在 VB 中打开第三个工作簿时,包含第二个工作簿的变量将被覆盖以包含第三个工作簿。
Set CheckWorkbook = Workbooks.Open("Checkworkbook.xlsx")
For Each File In Folder.Files
Set DataWorkbook = Workbooks.Open(File)
For i = 2 To NumRows
CurrentTransaction = DataWorkbook.Sheets(1).Cells(i, 7).Value
For j = 2 To CheckNumRows
CheckTransaction = CheckWorkbook.Sheets(1).Cells(j, 2).Value ' Reads Data from DataWorkbook instead of CheckWorkbook
If CurrentTransaction = CheckTransaction Then
'Process Data
End If
Next j
Next i
Next
有人见过类似的吗?还是excel只能用两个工作簿来蠕虫? 在 Excel 2016 中运行
【问题讨论】:
-
Checkworkbook.xlsx 是 Folder.Files 中的文件之一吗?通常,名称检查用于跳过类似的情况。
-
抱歉,我应该澄清一下,它们位于不同驱动器上的不同文件夹中。 Folder.files 在网络驱动器上(并且在其他项目中工作正常)
-
我有一个适用于 >20 个工作簿的例程。在您的
For i = ...行上放置一个断点,并在每次迭代期间准确查看 DataWorkbook 指向的内容。然后检查Folder集合以确保您指向正确的文件夹。 -
文件夹选择正确并指向第一个文件 31 并遍历它们(当月的每日数据转储),但是 Checkworkbook 也被分配给每日文件而无需任何调用应保留为 Checkworkbook.xlsx
-
我不明白。您打开一个工作簿 (
Checkworkbook) 并将其存储在一个变量中,然后循环遍历一个文件夹,在每次迭代中打开一个文件并将其分配给DataWorkbook。什么被覆盖了?