Excel 自动更改文件';将其指定为对象时的名称

Excel 自动更改文件';将其指定为对象时的名称,excel,vba,Excel,Vba,我希望我的过程(从一个文件到另一个文件的简单复制粘贴)能够考虑文件名的更改 这是一个每周的过程,因此每周都会以文件名更新周数(Variation_week44然后Variation_week45等等) 下面是我的(未成功)尝试(显然错误显示在“Set wsDest:[…]”行: VBA see的工作簿(“TEXT”),您想要工作簿(“TEXT”&Variable&“TEXT”)。您只是忘记了引号…“Variation\u week”&Weekfolder&“.xlsm”还请注意,如果您使用设置L

我希望我的过程(从一个文件到另一个文件的简单复制粘贴)能够考虑文件名的更改

这是一个每周的过程,因此每周都会以文件名更新周数(Variation_week44然后Variation_week45等等) 下面是我的(未成功)尝试(显然错误显示在“Set wsDest:[…]”行:


VBA see的
工作簿(“TEXT”)
,您想要
工作簿(“TEXT”&Variable&“TEXT”)
。您只是忘记了引号…
“Variation\u week”&Weekfolder&“.xlsm”
还请注意,如果您使用
设置L060=工作簿(“L060.xlsx”)。工作表(“Sheet1”)
在代码运行之前需要打开工作簿。否则,您需要使用类似于
Set L060=Workbooks.open(yourPathAndFile)
请参见。此外,如果工作簿名称与编写VBA代码的名称相同,您也不需要工作簿名称,您可以改用
thiswoolk
Sub test()
    Dim L060 As Worksheet
    Dim wsDest As Worksheet
    Dim SelectionL060 As Long
    Dim Adestination As Long
    Dim WeekFolder As String

    'This cell would contain the week number
    WeekFolder = ThisWorkbook.Worksheets(1).Range("A1")
                            

    'Set variables for copy and destination sheets
    Set L060 = Workbooks("L060.xlsx").Worksheets("Sheet1")
    Set wsDest = Workbooks("Variation_week & Weekfolder &.xlsm").Worksheets("RM consumption")
    '1. Find last used row in the copy range based on data in column A
    SelectionL060 = L060.Cells(L060.Rows.Count, "A").End(xlUp).Row
    '2. Find first blank row in the destination range based on data in column A and Offset property moves down 1 row
    Adestination = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).Row
    '3. Copy & Paste Data
    L060.Range("A2:M" & SelectionL060).Copy wsDest.Range("A" & Adestination)
    '4. Close workbook
    Workbooks("L060.xlsx").Close SaveChanges:=False
End Sub