Excel到Word宏
我有一个宏类似于以下连接到excel工作表中的图像。当我单击它时,它会将一个工作表中的所有必要信息保存到TPS报告工作表中,然后将文档保存为word文件,其名称为单元格B5中的任何内容。它工作正常,但问题是每当我单击启动宏时,它都会为工作表的每一行重新生成每个word文档。有没有办法让它只生成最新的文档?因此,如果已经创建了文件A、B和C,但工作表上的数据最多为F,当我单击宏时,它只会创建D、E和F,而不是ABCDE和F。我在这里找不到答案,请提供帮助。是否有一种方法可以在“另存为”命令之后添加一些代码,以检查文件是否存在,并仅在目录中不存在文件时创建它Excel到Word宏,excel,vba,ms-word,Excel,Vba,Ms Word,我有一个宏类似于以下连接到excel工作表中的图像。当我单击它时,它会将一个工作表中的所有必要信息保存到TPS报告工作表中,然后将文档保存为word文件,其名称为单元格B5中的任何内容。它工作正常,但问题是每当我单击启动宏时,它都会为工作表的每一行重新生成每个word文档。有没有办法让它只生成最新的文档?因此,如果已经创建了文件A、B和C,但工作表上的数据最多为F,当我单击宏时,它只会创建D、E和F,而不是ABCDE和F。我在这里找不到答案,请提供帮助。是否有一种方法可以在“另存为”命令之后添加
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
不要使用For循环;而是一次复制所有行,如以下代码段所示:
' 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文档
问候,