Excel VBA:复制和编辑;粘贴-正在复制但未粘贴单元格

Excel VBA:复制和编辑;粘贴-正在复制但未粘贴单元格,excel,vba,copy-paste,Excel,Vba,Copy Paste,我是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:=.R

我是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
我有
startRow
startRow
,因为数据在列
B
中,但不在单元格
B1
中开始

当我运行宏时,我看到
src
文件中的数据被复制(它周围有点“ants”,我可以将它粘贴到任何我喜欢的地方)。但是,在我当前的工作簿中,没有粘贴数据


你能帮我弄清楚吗?谢谢大家!

如前所述,如果只需要值,则无需复制和粘贴;事实上,复制和粘贴要比直接使用值慢得多

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
您可以在此处了解有关范围对象的更多信息:


如前所述,如果只需要值,则无需复制和粘贴;事实上,复制和粘贴要比直接使用值慢得多

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
您可以在此处了解有关范围对象的更多信息:


如果只需要值,只需设置源范围的目标范围的
.Value
。您根本不需要复制和粘贴。如果您只需要值,只需从源范围设置目标范围的
.Value
。你根本不需要复制和粘贴。嗨,埃里克,谢谢你的回答!我最初确实是这样设置的。但是,没有任何内容复制到我当前的工作簿中。事实上,甚至没有任何东西被复制到我的剪贴板上。你知道为什么会发生这种事吗?感谢您提供的文档,这绝对有助于我更好地理解!这种方式不会使用剪贴板,因为它实际上不是复制和粘贴;这是一个更直接的过程approach@rrpking如果您的目标是从一个工作簿粘贴到另一个工作簿,则需要确保在Eric的答案中指定这些工作簿;否则,您将遇到工作簿本身是activeAh@RGA的一些问题谢谢!我心里很困惑,为什么这不起作用。再次感谢你和我Eric@Eric我建议您编辑您的答案,将规范包含在两本工作簿中,以便答案更完整,供其他人将来参考Hi Eric,谢谢您的回答!我最初确实是这样设置的。但是,没有任何内容复制到我当前的工作簿中。事实上,甚至没有任何东西被复制到我的剪贴板上。你知道为什么会发生这种事吗?感谢您提供的文档,这绝对有助于我更好地理解!这种方式不会使用剪贴板,因为它实际上不是复制和粘贴;这是一个更直接的过程approach@rrpking如果您的目标是从一个工作簿粘贴到另一个工作簿,则需要确保在Eric的答案中指定这些工作簿;否则,您将遇到工作簿本身是activeAh@RGA的一些问题谢谢!我心里很困惑,为什么这不起作用。再次感谢你和我Eric@Eric我建议您编辑您的答案,将规范包括在两本工作簿中,以便答案更完整,供其他人将来参考