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