首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel转Word宏

Excel转Word宏
EN

Stack Overflow用户
提问于 2014-11-26 12:45:40
回答 1查看 257关注 0票数 0

我有一个宏(类似于下图)连接到excel工作表中的图像。当我单击它时,它会将所有必要的信息从一个工作表转移到TPS报告工作表中,然后将文档保存为word文件,其名称是单元格B5中存在的任何内容。它工作得很好,除了问题是每当我单击启动宏时,它都会为工作表的每一行重新生成每个word文档。有没有办法让它只生成最新的文档?因此,如果已经创建了文件"A“、"B”和"C“,但工作表上的数据一直到" F”为止,当我单击宏时,它只会创建"D“、"E”和"F",而不是ABCDE和F。我在这里找不到答案,如果有任何帮助,将不胜感激。有没有办法在另存为命令后添加一些代码,以检查文件是否存在,并仅在目录中不存在时创建它。

代码语言:javascript
复制
Sub ControlWordTPS()
    Dim appWD As Word.Application
    Set appWD = CreateObject("Word.Application.8")
    appWD.Visible = True
    Sheets("TPS").Select
    'Find the last row with data in the database
    FinalRow = Range("P9999").End(xlUp).Row
    For i = 5 To FinalRow
        Sheets("TPS").Select
        Range("A" & i).Copy Destination:=Sheets("TPSForm").Range("B5")
        Range("D" & i).Copy Destination:=Sheets("TPSForm").Range("B6")
        Range("E" & i).Copy Destination:=Sheets("TPSForm").Range("B7")
        Range("G" & i).Copy Destination:=Sheets("TPSForm").Range("B8")
        Range("M" & i).Copy Destination:=Sheets("TPSForm").Range("B9")
        Range("N" & i).Copy Destination:=Sheets("TPSForm").Range("B10")
        Range("O" & i).Copy Destination:=Sheets("TPSForm").Range("B11")
        Range("H" & i).Copy Destination:=Sheets("TPSForm").Range("B24")
        Range("I" & i).Copy Destination:=Sheets("TPSForm").Range("B25")
        Range("K" & i).Copy Destination:=Sheets("TPSForm").Range("B26")
        Range("J" & i).Copy Destination:=Sheets("TPSForm").Range("B27")
        Sheets("TPSForm").Select
        Range("A1:F28").Copy
        appWD.Documents.Add
        appWD.Selection.Paste
        appWD.ActiveDocument.SaveAs Filename:="G:\Warranties\Customer\2014\2014TPSForms        \TPSAUTO\" & Range("B5")
        appWD.ActiveDocument.Close
    Next i
    appWD.Quit
End Sub
EN

回答 1

Stack Overflow用户

发布于 2014-11-26 13:26:20

不要使用For循环;而是一次复制所有行,如以下代码片段所示:

代码语言:javascript
复制
' Copy multiple rows at once
Worksheets("Sheet1").Rows("5:" & FinalRow).Copy

' Create a new Word document
appWD.Documents.Add

' Paste the contents of the clipboard into the new Word document
appWD.Selection.Paste

‘...代码的其余部分保存Word文档

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27141505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档