1
我在新工作中学习VBA,并分配了一个涉及在大约100个工作簿中检查值的项目。该值包含在100个工作簿中的每一个中具有相同名称的工作表中的同一单元格(I12)中。是否有可能使用SQL以某种方式将每个工作簿中的单元格的值传递给变量,以便我可以比较它们?我当前的代码打开了每个工作簿以比较值,这些工作可行但非常耗时。在同一单元格和同一张工作表中为多个Excel工作簿查找值
我在新工作中学习VBA,并分配了一个涉及在大约100个工作簿中检查值的项目。该值包含在100个工作簿中的每一个中具有相同名称的工作表中的同一单元格(I12)中。是否有可能使用SQL以某种方式将每个工作簿中的单元格的值传递给变量,以便我可以比较它们?我当前的代码打开了每个工作簿以比较值,这些工作可行但非常耗时。在同一单元格和同一张工作表中为多个Excel工作簿查找值
如果只是一个Cell,您可能想尝试ExecuteExcel4Macro?
喜欢的东西:
Sub Test()
Dim fexcel
Dim fpath As String, fval As String, aval
fpath = "C:\Users\User.Name\FolderName\" '~~> change to suit
fexcel = Dir(fpath, vbNormal)
Do While fexcel <> ""
'~~> Sheet1 should be the sheet name, R12C9 is I12 in R1C1 notation
fval = "'" & fpath & "[" & fexcel & "]Sheet1'!R12C9"
aval = ExecuteExcel4Macro(fval)
'~~> Do your comparison here or dump information in an array
fexcel = Dir
Loop
End Sub
是实际的Excel工作簿或CSV文件的文件? (SQL不是你的答案,顺便说一句) – 2014-10-10 14:41:18
SQL不会在这里帮助。我的意思是......你可以使用SQL来查询每个工作簿,但是每个工作簿都像它自己的数据库一样工作,所以你将不得不建立100个连接,100个记录集和... yuck。 – JNevill 2014-10-10 14:41:27