我有一个我需要粘贴数据的工作簿。 我想要实现的目标:
我尝试了很多组合.Paste Destination [...]等等。
今天使用的是:
Dim wb As Workbook
Dim wsPT As Worksheet
Dim wsQD As Worksheet
Set wb = ActiveWorkbook
Set wsPT = wb.Sheets("PasteTemplate")
Set wsQD = wb.Sheets("QuoteData")
wsPT.Cells.Clear
wsPT.Range("A1").PasteSpecial xlPasteValues
答案 0 :(得分:2)
它失败的原因是因为剪贴板不包含任何要粘贴的内容,因为这行:
wsPT.Cells.Clear
清除单元格时,还要清除先前发出的复制命令。同样,如果您输入或修改另一个单元格中的信息,或者即使您只是输入单元格,也会清除copy-command。
我没有为您的特定工作流程提供完美的解决方法,但是如果您愿意修改步骤4以便可以从任何工作表运行宏(具体而言,用户必须从同一工作表运行命令)他们正在从菜单中复制或通过将宏放在工具栏上来复制,这段代码应该可以工作:
Dim wb As Workbook
Dim wsPT As Worksheet
Dim wsQD As Worksheet
Dim pRng As Range
Set wb = ActiveWorkbook
Set wsPT = wb.Sheets("PasteTemplate")
Set wsQD = wb.Sheets("QuoteData")
Set pRng = Selection <~~ Store the range we want to copy
wsPT.Cells.Clear <~~ Clear the contents of the worksheet we are pasting to
pRng.Copy <~~ Copy the range
wsPT.Range("A1").PasteSpecial xlPasteValues
在选择所需范围后,从正在复制数据的工作表中运行宏。
答案 1 :(得分:0)
你试过吗??
Range("A1").Copy Destination:=Workbooks("QuoteDate").Sheets("PasteTemplate").Range("A1")
这将从引用日期表和粘贴模板表中的粘贴中复制,如果您想要相反的话,请交换这些名称。