繁体   English   中英

Excel VBA从剪贴板粘贴到另一个工作表仅值

[英]Excel vba paste from clipboard to another sheet only values

我有一个需要将数据粘贴到的工作簿。 我正在努力实现以下目标:

  1. 我要粘贴数据的工作簿处于活动状态
  2. 我要粘贴数据的工作簿中的工作表未激活
  3. 用户激活已经打开的另一个工作簿,选择整个工作表并将其复制到剪贴板。
  4. 用户返回到要粘贴到工作簿的数据,并运行一个宏,该宏将该数据粘贴到具有预定义工作表名称的另一个空工作表中。
  5. 粘贴必须仅粘贴值,不能设置格式,不能注释,不可以合并单元格。 仅值。

而且我尝试了很多组合.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

失败的原因是由于以下行,剪贴板不包含任何要粘贴的内容:

wsPT.Cells.Clear

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

对于您的特定工作流程,我没有一个完美的解决方法,但是如果您愿意修改步骤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

选择所需的范围后,从要复制数据的工作表中运行宏。

你有没有尝试过..?

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

这将从报价日期表中复制并粘贴在“粘贴”模板表中,如果需要,可以交换这些名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM