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
我有 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
您可以在此处了解有关 Range 对象的更多信息:
https://docs.microsoft.com/en-us/office/vba/api/excel.range(object)
我是 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
您可以在此处了解有关 Range 对象的更多信息:
https://docs.microsoft.com/en-us/office/vba/api/excel.range(object)