Excel宏旨在使用FileToOpen將範圍從一個工作簿複製到另一個工作簿。相同的代碼今天早些時候在單獨的工作簿中工作。Excel- VBA PasteSpecial方法的範圍級別失敗
生成的錯誤是運行時1004'PasteSpecial方法的類失敗。以下是失敗的部分:
SrcWB.Worksheets("1").Range("A1:K35").Copy
TgtWB.Sheets("1").Range("A1:K35").PasteSpecial (xlPasteValues)
TgtWB.Sheets("1").Range("A1:K35").PasteSpecial (xlPasteFormats)
在粘貼特定值和格式時都會出現錯誤。我也嘗試使用:
SrcWB.Worksheets("1").Range("A1:K35").Value = TgtWB.Sheets("1").Range("A1:K35")
上述方法沒有創建任何錯誤,但是沒有值傳輸到目標工作簿。
我在今天下午大部分時間都咀嚼過,希望得到任何幫助!
下面是完整的代碼:
Sub CopySch()
Dim sh As Worksheet
Dim TgtWB As Workbook
Dim SrcWB As Workbook
Application.EnableEvents = False
Application.ScreenUpdating = False
Set TgtWB = ThisWorkbook
FileToOpen = Application.GetOpenFilename(FILEFILTER:="Excel Workbooks (*.xls*),*.xls*", Title:="Please select a file")
If FileToOpen = False Then
MsgBox "No File Specified.", vbExclamation, "ERROR"
Exit Sub
Else
Set SrcWB = Workbooks.Open(FileToOpen, xlUpdateLinksNever, ReadOnly:=True)
SrcWB.Worksheets("1").Range("A1:K35").Copy
TgtWB.Sheets("1").Range("A1:K35").PasteSpecial (xlPasteValues)
TgtWB.Sheets("1").Range("A1:K35").PasteSpecial (xlPasteFormats)
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
SrcWB.Close
End Sub
'工作表(「1」)'表示名爲「1」的工作表,而不是書中的第一個工作表。源和目標工作簿中的相關工作表實際上是否被稱爲「1」?如果不是,請嘗試'工作表(1)' – barrowc
是的,工作表都被稱爲「1」 – Jenga
「_...但是沒有值被傳輸到目標工作簿...」。這是因爲您正在複製_from_'TgtWB' _to_'SrcWB' –