簡體   English   中英

Excel VBA:復制和粘貼-正在復制但未粘貼單元格

[英]Excel VBA: Copy & Paste - Cells are being copied but not pasted

我是VBA的新手,正在編寫一些代碼,這些代碼可以從一個工作簿中的列復制數據,然后將數據粘貼到另一個工作簿中。

請參閱下面的代碼:

Set src = Workbooks.Open("C:\Users\RP\Desktop\CopyFrom.xlsm", True, True)

Dim startRow As Integer, endRow as Integer
With src.Sheets("Sheet1")
    startRow = .Range("B:B").Find(what:="*", after:=.Range("B1")).Row
    endRow = .Range("B:B").Find(what:="", after:=.Range("B1"), searchdirection:=xlPrevious).Row
End With

src.Worksheets("Sheet1").Range("B" & startRow & ":B" & endRow).Copy
Sheets("PasteHere").Range("B1").PasteSpecial xlPasteValues

我有startRowstartRow因為數據在B列中,但沒有在單元格B1開始。

當我運行宏時,我看到src文件中的數據被復制了(它周圍帶有虛線的“螞蟻”,可以將其粘貼到任何需要的位置)。 但是,在我當前的工作簿中,沒有粘貼數據。

你能幫我解決這個問題嗎? 謝謝!

如前所述,如果只需要這些值,則無需復制和粘貼; 實際上,復制和粘貼要比直接使用這些值慢得多!

Set src = Workbooks.Open("C:\Users\RP\Desktop\CopyFrom.xlsm", True, True)
Set dest = Workbooks.Open("C:\Users\RP\Desktop\CopyTo.xlsm", True, True)

Dim startRow As Integer, endRow as Integer
With src.Sheets("Sheet1")
    startRow = .Range("B:B").Find(what:="*", after:=.Range("B1")).Row
    endRow = .Range("B:B").Find(what:="", after:=.Range("B1"),      searchdirection:=xlPrevious).Row
End With

dest.Worksheets("PasteHere").Range("B1").Value = _ 
    src.Worksheets("Sheet1").Range("B1").Value

您可以在此處了解有關Range對象的更多信息:

https://docs.microsoft.com/zh-cn/office/vba/api/excel.range(object)

暫無
暫無

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

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