循环比较宏 [英] Loop comparison macro
本文介绍了循环比较宏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经使用Word完成了一个文本比较宏,我需要循环它,以便它可以在几套文档之间进行比较.关于如何做的任何想法? 这是我的密码
I've done a text comparison macro using Word and I need to loop it so that it can compare between a few sets of documents. Any idea on how to do so? Here's my codes
Dim template1 As Word.Document
Dim spool1 As Word.Document
Set template1 = Documents.Open("D:\Users\tmp4jj\Desktop\ComparisonTool\template1.docx")
Set spool1 = Documents.Open("D:\Users\tmp4jj\Desktop\ComparisonTool\spool1.txt")
Application.CompareDocuments OriginalDocument:=Documents("template1.docx") _
, RevisedDocument:=Documents("spool1.txt"), Destination:= _
wdCompareDestinationNew, Granularity:=wdGranularityWordLevel, _
CompareFormatting:=False, CompareCaseChanges:=True, CompareWhitespace:= _
False, CompareTables:=True, CompareHeaders:=True, CompareFootnotes:=True, _
CompareTextboxes:=True, CompareFields:=True, CompareComments:=True, _
CompareMoves:=False, RevisedAuthor:="UOB", IgnoreAllComparisonWarnings:= _
False
ActiveWindow.ShowSourceDocuments = wdShowSourceDocumentsBoth
我还做了一个文件计数宏,不确定是否需要
and I also did a file counting macro, not sure if its required
Dim FolderPath As String, path As String, count As Integer
FolderPath = "D:\Users\tmp4jj\Desktop\ComparisonTool"
path = FolderPath & "\*.docx"
path = FolderPath & "\*.txt"
FileName = Dir(path)
Do While FileName <> ""
count = count + 1
FileName = Dir()
Loop
MsgBox count & " : files found in folder"
Windows("Document1").Activate
Application.Run MacroName:="FileCount"
Application.Move Left:=-3, Top:=-3
Application.Run MacroName:="FileCount"
Application.Move Left:=-3, Top:=-3
推荐答案
不能完全确定您的意思,但是您可以使用内置文件对话框选择一批要操作的文件.
not entirely sure what you mean but you can select a batch of files to operate on using using the built-in file dialogs.
一个例子是:
Sub Example()
Dim item, templateDoc As Document, compareDoc As Document
'Get template file
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Title = "Select template"
If .Show = 0 Then Exit Sub
Set compareDoc = Documents.Open(.SelectedItems(1))
End With
'Get files to batch process
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Title = "Select files to compare"
If .Show = 0 Then Exit Sub
For Each item In .SelectedItems
'Do some stuff
Set compareDoc = Documents.Open(item)
CompareDocs templateDoc, compareDoc
compareDoc.Close
Next
End With
End Sub
Sub CompareDocs(templateDoc As Document, compareDoc As Document)
Application.CompareDocuments _
OriginalDocument:=templateDoc, _
RevisedDocument:=compareDoc, _
Destination:=wdCompareDestinationNew, _
Granularity:=wdGranularityWordLevel, _
CompareFormatting:=False, _
CompareCaseChanges:=True, _
CompareWhitespace:=False, _
CompareTables:=True, _
CompareHeaders:=True, _
CompareFootnotes:=True, _
CompareTextboxes:=True, _
CompareFields:=True, _
CompareComments:=True, _
CompareMoves:=False, _
RevisedAuthor:="UOB", _
IgnoreAllComparisonWarnings:=False
ActiveWindow.ShowSourceDocuments = wdShowSourceDocumentsBoth
End Sub
这篇关于循环比较宏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文