我有一个带有word docs的数据库。文件名就像000001,000002 ......
我已经成功编写了一个宏,可以打开这些文档,进行选择直到找到一个值,然后打印此选择,然后再次关闭该文档并继续进行下一个操作。(请参见下面的代码)
我想做一件事,但我无法弄清楚。我希望在此选择下(在同一页上)打印“结束”一词。但是,我希望在不对文档进行任何更改的情况下执行此操作。
我不想更改文档,因为需要与选择一起打印的值来自用户窗体文本框,并且每次都不同。但是,如果有人可以帮助我,您可以举一个“ end”一词的例子
在我正在寻找的上方添加了一张图片
现在这是我的代码:
Dim i As Long, wdApp As Object, wdDoc As Object, wdRng As Object
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
For i = 1 To 9
Set wdDoc = .Documents.Open("\\path\" & Format(i, "000000") & ".NET", False, True, False)
With wdDoc
Set wdRng = .Range(0, 0)
With .Range
With .Find
.Text = "ENDLIST"
.Forward = True
.MatchWholeWord = True
.MatchCase = True
.Execute
End With
If .Find.found = True Then
wdRng.End = .Duplicate.Start
wdRng.Select
wdDoc.PrintOut , Range:=1
End If
End With
.Close False
End With
Next
.Quit
End With
Set wdRng = Nothing: Set wdDoc = Nothing: Set wdApp = Nothing
End Sub
这可能吗,如果可以,请有人帮我走
自己发现了。下面的代码将打开word文件,将在文档的开头添加信息,从头开始进行选择直到找到单词,然后打印此选择,然后再次关闭word文件。
选择后无法弄清楚如何获得它,如问题图片中所示。但是,只要纸张上需要的信息看起来很整洁,这个地方并不重要。
Sub test()
Dim i As Long, wdApp As Object, wdDoc As Object, wdRng As Object, wRng As Object
Dim BEGINNING_OF_STORY
Dim MOVE_SELECTION
BEGINNING_OF_STORY = 6
MOVE_SELECTION = 0
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
For i = 1 To 2
Set wdDoc = .Documents.Open("M:\" & Format(i, "000") & ".docx")
With .Selection
.Font.Bold = True
.HomeKey BEGINNING_OF_STORY, MOVE_SELECTION
.Font.Size = "25"
.TypeText ("information" & vbCrLf)
End With
With wdDoc
Set wdRng = .Range(0, 0)
With .Range
With .Find
.Text = "DEF"
.Forward = True
.MatchWholeWord = True
.MatchCase = True
.Execute
End With
If .Find.found = True Then
wdRng.End = .Duplicate.Start
wdRng.Select
wdDoc.PrintOut , Range:=1
End If
End With
.Close False
End With
Next
.Quit
End With
Set wdRng = Nothing: Set wdDoc = Nothing: Set wdApp = Nothing
End Sub
符合我自己的需求,希望其他人有时也可以解决这个问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句