引用文件名始终更改的工作簿 - 解决方案建议?



这里对VBA是新的。 在工作中,我正在创建一个宏,该宏可以从我们每月收到的报告中编译和格式化数据,并且文件名会更改。 由于名称更改,而不必进入 VBE 并从那里更改名称,我是否可以创建一个用户表单,允许我输入工作簿的名称,并且能够将其插入脚本?

到目前为止,我拥有的:

Sub tester()
Dim wbName As String
wbName = Application.InputBox("What is the workbook name?")
If Right(wbName, 4) <> ".xls" Then wbName = wbName + ".xls"
Set mainWB = Workbooks(wbName)
Dim copyThis As Range, pasteThis As Range
Set copyThis = mainWB.Worksheets(2).Columns("F")
Set pasteThis = Workbooks("VBA Workbook.xlsm").Worksheeets(1).Columns("A")
copyThis.Copy Destination:=pasteThis
End Sub

工作簿名称将逐月更改。

欢迎替代解决方案

谢谢大家

假设您的宏在Personal.xlsb中,并且您有需要引用的工作簿作为ActiveWorkbook,您可以执行以下操作:

Dim mainWB as Workbook
Set mainWB = ActiveWorkbook

然后,您只需使用mainWB作为引用,因此:

mainWB.Worksheets("Sheet1").Range("A1")

或者,如果您希望用户输入 WB 名称:

Dim wbName as String
wbName = Application.InputBox("What is the workbook name?")
If right(wbName, 4) <> ".xls" Then wbName = wbName + ".xls"
Set mainWB = Workbooks(wbName)
...

。在InputBox()情况下,如果用户键入的名称不正确,您可能希望在添加错误处理。

最新更新