2011-03-15 53 views
0

當我嘗試在工作表之間複製數據時,這沒有問題,但是當我嘗試將相同的數據複製到Word文檔時,它會丟失其格式。有沒有辦法阻止它?Excel宏 - 保持源格式化

' Copy all data from 1.xls to new.docx 
Sheets("Design").Select 
Range("A1:G50").Copy 
appWD.Selection.Paste 

它可能是PasteSpecial的東西?

謝謝。

@Brown

Select Case Range("C19").Value 
    Case 1 
     Sheets("Info").Select 
     Range("B7").Copy Destination:=Sheets("Design").Range("A" & x) 
     x = x + 2 
End Select 

所以這個副本從小區C19中的數據(表:信息)到細胞B7(表:設計)

' I open my word doc etc. 
Sheets("Design").Select 
Range("A1:E50").Copy 
appWD.Selection.Paste 

這將選擇片設計,拷貝和一切糊劑這成詞doc。我失去了我的格式,我還使用XP,Office 2007中

+0

當我嘗試這個,這工作正常,所有格式保持不變(使用Office XP)。我檢查了數字格式和字體顏色。你能在一個小測試程序中重現這種行爲嗎? – 2011-03-15 14:30:41

+0

編輯我的評論 – CustomX 2011-03-15 14:47:11

+0

你爲什麼不看看PasteSpecial的文檔,因爲你建議它可能是你的解決方案(提示:這是,雖然我只有Excel的經驗)。 – Romain 2011-03-15 14:53:23

回答

0

這裏是我的簡單測試程序

Sub test() 
    Dim wrdApp As Word.Application 
    Set wrdApp = New Word.Application 
    Dim wrdDoc As Word.Document 
    wrdApp.Documents.Add 
    Set wrdDoc = wrdApp.ActiveDocument 
    Range("A1:B1").Copy 
    wrdApp.Selection.Paste 
    wrdDoc.SaveAs "D:\tmp\myworddoc.doc" 
End Sub 

這適用於Office XP的(我沒有辦公室在2007手)。單元格A1:B1包含格式化的數字。這個在我的機器上工作得很好,創建的文檔doc也包含一個格式化數字的表格。你可以嘗試一下,看看它是否有效?

+0

嗯確實,這是行不通的。我想知道爲什麼它不適用於我:但是,謝謝。 – CustomX 2011-03-15 15:35:13

+0

@Tom:找出你和我的情況有什麼不同,你完成了:-) – 2011-03-15 15:50:42

+0

哈哈謝謝你:P – CustomX 2011-03-15 15:58:08