首页 > 解决方案 > 打开带有变量的工作簿时出现错误 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

标签: excelvbasyntax-error

解决方案


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")

推荐阅读