我是 VBA 新手。我有一个启用了宏的模板,我想从启用了宏的工作簿中获取数据,该工作簿的名称每次都不同(文件名将包含儒略日期的字母,后跟一系列 (4) 个数字(如果重要的话)。
附件是两个示例。我无法分享实际文件。
宏工作簿(在本例中为 test.xlsx)有许多工作表,数据输入工作表将始终相同,但样本名称/工作表编号将根据样本 ID 而变化。我将把数据拉入模板(在本例中为 book2.xlsm),然后将其保存为文件(理想情况下将其写入 VBA 代码)。
我已经能够让下面的代码至少在数据输入表中工作
Sub copydata()
Dim rw As Long, x As Range
Dim extwbk As Workbook, twb As Workbook
Set twb = ThisWorkbook
Set extwbk = Workbooks.Open("/Users/andreaoverman/desktop/test.xlsx")
Set x = extwbk.Worksheets("Data entry").Range("A1:GZ400")
With twb.Sheets("Sheet1")
For rw = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(rw, 2) = Application.VLookup(.Cells(rw, 1).Value2, x, 11, False)
Next rw
End With
With twb.Sheets("sheet1")
For rw = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(rw, 3) = Application.VLookup(.Cells(rw, 1).Value2, x, 12, False)
Next rw
End With
extwbk.Close savechanges:=False
End Sub
本质上,我想要一个单元格 (A1),我将在其中输入文件名,然后它会从中提取信息(源文件夹将类似,以方便使用,可能是桌面)。我曾尝试使用 Indirect 和 Vlookup 来实现这一点,并且运行良好,但是,因为我通过电子邮件发送此文件以报告数据,所以我希望将值硬编码到其中,这样它就不会要求更新参考文件。因此我想使用 VBA。
有人可以指导我如何实现这一目标吗?