簡體   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