excel - 打开带有变量的工作簿时出现错误 438
问题描述
我仍在学习 VBA,但我知道这很可能是一个简单的错误,我需要一些帮助来解决这个错误代码。我为替换每天更改其名称的工作簿而创建的变量“isum”出现错误 438。由于“&”,我无法使用“filepath & wb”打开它,因此我为它们都创建了一个变量。我正在尝试从一个工作簿复制工作表上的一个部分,然后粘贴到另一个工作簿上的另一个工作表区域。这是我的代码:
Sub Summary()
Application.ScreenUpdating = False
'create variables
Dim wb As String
Dim filepath As String
Dim isum As Workbook
Dim CBD As Workbook
'variables for file with changing date in name title
filepath = "\\main\stuff\Summary\"
wb = "Today Summary " & Format(Date, "m.dd") - 0.01 & ".xlsb"
'open both
Set isum = Workbooks.Open(filepath & wb)
Set CBD = Workbooks.Open("\\main\other\CBD forecast.xlsx")
'copy
CBD.Sheets("Sheet3").Range("B3:J3000").Copy
'Now, transfer values from x to y:
isum.Sheets("Sheet7").Range("A2").Paste 'error 438, it copies but does not paste
'Close x:
CBD.Close
Application.ScreenUpdating = True
End Sub
解决方案
wb 文件为星期五日期的“今日摘要 6.29”。
wb = "Today Summary " & Format(Date, "m.dd") - 0.01 & ".xlsb"
您似乎将测试字符串的某些部分连接到所需的工作簿名称中。
'variables for file with changing date in name title
filepath = "\\main\stuff\Summary\"
wb = "Today Summary " & Format(Date, "m.dd") & ".xlsb"
还建议在粘贴到单个目标时使用复制操作的目标参数。
CBD.Sheets("Sheet3").Range("B3:J3000").Copy _
destination:=isum.Sheets("Sheet7").Range("A2")