Excel VBA从剪贴板粘贴到另一个表中只有值

我有一个工作簿,我需要粘贴数据。 什么即时通讯试图实现:

  1. 我想要粘贴数据的工作簿处于活动状态
  2. 工作簿中的工作表我想粘贴数据不活跃
  3. 用户激活另一个已打开的工作簿,select整个工作表并将其复制到剪贴板。
  4. 用户返回到工作簿数据将被粘贴到并运行一个macros,该数据将该数据粘贴到具有预定义的图纸名称的另一个空白工作表。
  5. 粘贴只能粘贴值,不能格式化,不能注释,形状,不能合并单元格。 只有价值。

我已经尝试了很多的组合。粘贴目的地等等。

今天使用什么是:

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 

它失败的原因是因为剪贴板不包含任何要粘贴的东西,由于这一行:

 wsPT.Cells.Clear 

清除单元格时,还可以清除先前发出的复制命令。 同样,如果您在另一个单元格中input或修改信息,或者即使只是input了单元格,复制命令也会被清除。

对于您的特定工作stream程,我没有一个完美的解决方法,但是如果您愿意修改步骤4,以便可以从任何工作表运行macros(具体而言,用户必须从它们正在从中复制的同一工作表运行命令,无论是从菜单中,或者通过将macros放在工具栏上),这个代码应该工作:

 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 

选定所需范围之后,从正在复制数据的工作表运行macros。

你有没有尝试过..?

 Range("A1").Copy Destination:=Workbooks("QuoteDate").Sheets("PasteTemplate").Range("A1") 

这从复制粘贴模板工作表中的报价单date和粘贴,如果你想换一个方式交换这些名称。