繁体   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