Excel宏 - 保持源格式化

问题描述:

当我尝试在工作表之间复制数据时,这没有问题,但是当我尝试将相同的数据复制到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

这里是我的简单测试程序

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