我一直在尝试搜索本地目录中的文件,如果它不存在只是为了在if函数的第二个块中命名,并且在其中迭代并且保存名称Rev i(其中i是迭代号1到10),只有存在i-1时才是如此。我不知道如果是有道理的,但我已经把它贴我的代码(对不起,那是相当漫长的)如果文件存在则循环,转到下一个迭代
谢谢你们:)
DirFile = Application.ActiveWorkbook.Path & "\" & QuoteNo & " - " & Client & " Rev " & i - 1 & ".docm"
For i = 1 To 10
If Dir(DirFile) <> "" Then
With objDoc
objDoc.Bookmarks("Quote").Select 'To place the Quote Number in the Word Template
.Application.Selection.Find.Text = "Quote "
.Application.Selection = QuoteNo & " - Revision " & i
End With
With objDoc
objDoc.Bookmarks("Footer").Select 'To place the Client Name in the Word Template
.Application.Selection.Find.Text = ""
.Application.Selection = Client & ": Rev. " & i
End With
Worksheets("Dewater - E&Q").UsedRange.Copy
objDoc.Activate
objDoc.Application.Run "EQAlign"
Application.CutCopyMode = False
objDoc.Application.Run "PrintLayout"
objDoc.SaveAs FileName:=Application.ActiveWorkbook.Path & "\" & QuoteNo & " - " & Client & " Rev " & i
Next i
Exit For
Else
With objDoc
objDoc.Bookmarks("Quote").Select 'To place the Quote Number in the Word Template
.Application.Selection.Find.Text = "Quote "
.Application.Selection = QuoteNo
End With
With objDoc
objDoc.Bookmarks("Footer").Select 'To place the Client Name in the Word Template
.Application.Selection.Find.Text = ""
.Application.Selection = Client
End With
Worksheets("Dewater - E&Q").UsedRange.Copy
objDoc.Activate
objDoc.Application.Run "EQAlign"
Application.CutCopyMode = False
objDoc.Application.Run "PrintLayout"
objDoc.SaveAs FileName:=Application.ActiveWorkbook.Path & "\" & QuoteNo & " - " & Client
End If
你能告诉什么是这个代码的工作已经和你想添加什么功能?所有这些代码是否与解决您的问题有关? – Limak
使用代码缩进,你可以看到你的For和IF结构不正确,这段代码甚至不会编译......这就是问题#1。 – Rdster