【发布时间】:2016-07-13 14:25:56
【问题描述】:
这看起来应该很简单,但我真的坚持下去了。
这是从目录中的多个工作簿中获取值并将它们编译到一个工作簿中的代码。我使用 vlookup 是因为该值并不总是在完全相同的单元格中,但总是具有相同的行标题。代码打开目录中的每个工作簿并将其命名为 wb。
我想在 Vlookup 公式中引用 wb,但在执行时遇到了麻烦。当我尝试下面的代码时,它给了我一个“没有做的循环”错误(但是当我在没有公式的情况下运行相同的代码时,只需复制和粘贴范围,就可以了)。我也尝试在 wb 中命名一个范围并引用它。
'Target File Extension
myExtension = "*.xls"
'Target Path with Ending Extention
myFile = Dir(myPath & myExtension)
'Loop through each Excel file in folder
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(fileName:=myPath & myFile)
'Put ID from filename into sheet
If right(wb.Name, 5) = "h.xls" Then
wb.Worksheets(1).Range("B16").Select
ActiveCell.Value = Left(wb.Name, 9)
'Get value from wb using Vlookup
MasterBook.Activate
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(""Sugar (g)"",wb!R18C1:R28C6,2,FALSE)"
'Close Workbook
wb.Close SaveChanges:=True
'Get next file name
myFile = Dir
Loop
'Message Box when done
MsgBox "Task Complete!"
【问题讨论】: