簡體   English   中英

Excel VBA PasteSpecial xlPasteValues 語法錯誤

[英]Excel VBA PasteSpecial xlPasteValues Syntax error

我試圖將數據從一個 .xlsx 文件復制到我的 .xlsm 文件,但沒有格式化。 當我嘗試使用以下代碼行時,出現未指定的語法錯誤。

TargetSheet.Range("A" & TargetLastRow).PasteSpecial xlPasteValues(或各種其他形式)

Sub Import_Click()

'Set the target workbook for import.'
Dim TargetWorkbook As Workbook
Set TargetWorkbook = Application.ActiveWorkbook

'Prompt window for user to select and import file.'
Dim UserFilename As String
UserFilename = Application.GetOpenFilename

Dim UserWorkbook As Workbook
Set UserWorkbook = Application.Workbooks.Open(UserFilename)

'Copy data from source to target sheet.'
Dim SourceSheet As Worksheet
Set SourceSheet = UserWorkbook.Worksheets(1)

Dim TargetSheet As Worksheet
Set TargetSheet = TargetWorkbook.Worksheets(1)

Dim SourceLastRow As Long
SourceLastRow = SourceSheet.Cells(SourceSheet.Rows.Count, "A").End(xlUp).Row

Dim TargetLastRow As Long
TargetLastRow = TargetSheet.Cells(TargetSheet.Rows.Count, "A").End(xlUp).Offset(1).Row

SourceSheet.Range("A2:S" & SourceLastRow).Copy _
TargetSheet.Range("A" & TargetLastRow)

'Close import workbook.'
UserWorkbook.Close

End Sub

您可以通過將目的地作為.Copy第一個參數來.Copy

SourceSheet.Range("A2:S" & SourceLastRow).Copy Destination:=TargetSheet.Range("A" & TargetLastRow)

或者,如果您想使用 SpecialPaste,則需要在 2 個單獨的語句中進行:

SourceSheet.Range("A2:S" & SourceLastRow).Copy 'no destination given here
'separate statement for pasting:
TargetSheet.Range("A" & TargetLastRow).PasteSpecial xlPasteValues

請注意,在.Copy行的末尾不能有_作為行連接.Copy

我會盡量避免使用復制和粘貼,替換行

SourceSheet.Range("A2:S" & SourceLastRow).Copy _
TargetSheet.Range("A" & TargetLastRow)

使用下一個代碼

TargetSheet.Range("A" & TargetLastRow).Resize(SourceLastRow - 1, _
        SourceSheet.Range("A2:S" & SourceLastRow).Columns.count) = _
                        SourceSheet.Range("A2:S" & SourceLastRow)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM