2016-01-27 298 views
0

我有一個工作簿,我需要將數據粘貼到。 什麼我嘗試實現:Excel VBA從剪貼板粘貼到另一個表只有值

  1. 工作簿,我想數據粘貼到激活
  2. 在工作簿表我要粘貼的數據不活躍
  3. 用戶激活另一個工作簿已經打開選擇整個工作表並將其複製到剪貼板。
  4. 用戶返回工作簿數據將被粘貼並運行一個宏,該宏將該數據粘貼到具有預定義工作表名稱的另一個空白工作表中。
  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 
+0

你能告訴我們你已經試過了嗎?所以我們可以看看你是否有任何問題,或者我們知道什麼不該嘗試,歡呼。 –

回答

0

你試過..?

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

從粘貼模板薄片中報價日期表並粘貼此副本,如果你想讓它周圍的其他方式交換這些名字。

+0

實際上,表單用戶正在複製來自未知工作簿和未知表單。要複製到的表格是「PasteTemplate」。 QuoteData是當用戶運行宏時活動的表單。所以我不認爲這會起作用。 – OyvPet

+0

哦,我明白了,恐怕不會那麼做,不。感謝您將此引起我的注意。 –

2

失敗的原因是剪貼板中不包含任何被粘貼,由於這一行:

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 

從那裏數據被從期望的範圍一直後複製的片運行宏選中

+0

我認爲我可以在粘貼之前清除乾淨,因爲這只是確保工作表是空的。在宏完成之後,我也清楚了。目前,我所描述的代碼正在運行,問題在於它粘貼了格式和其他「不太流行」的東西。 :)但也許明確是什麼destroyd我的其他企圖..在這種情況下,你會推薦什麼粘貼值?如果我可以拿出「清晰的命令」? – OyvPet

+0

'wsPT.Range(「A1」)。PasteSpecial xlPasteValues'應該爲此工作。不是嗎? – Vegard