我的查找 VBA 代码中的 Excel 动态工作表引用

我的查找 VBA 代码中的 Excel 动态工作表引用

我是 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。

第二本书展示了我想要拉入数据的模板。

测试显示文件可能来自哪里。

有人可以指导我如何实现这一目标吗?

相关内容