我在这里就如何使用Excel开发VBScript和VBA应用程序提供了大量的建议,但现在我已经面临一个新的挑战:开发VBScript/VBA应用程序为Word。用VBScript或VBA操作Microsoft Word中的内容
我知道,在Excel中,如果我想在B3单元格中键入"my name"
,我会输入:
Range("B3").Value = "my name"
我需要能够找到其中的一封正式信函,名称和地址会输入的日期以及今天的日期,以及我的姓名缩写作为签名。
我以为我可能能够在Internet上找到用于Word的VBScript/VBA编程,就像我为Excel所做的一样,但是看起来像Word一样不受欢迎。如果任何人有任何片段让我开始,或者一个非常好的链接到互联网上的网站,我可以自己做编码,这将不胜感激。
UPDATE
这是我与目前使用的代码:
Public Sub WordVbaDemo()
Dim doc As Document: Set doc = ActiveDocument ' Or any other document
DateText = doc.Range(doc.Paragraphs(1).Range.End - 20, doc.Paragraphs(1).Range.End - 18).Text
End Sub`
我需要的代码为正式信函,其中的日期为右对齐工作:
Date: November 7th, 2016
我上面的代码将复制日期文本后面的“日期:”。原始模板没有预先填好的日期。如果我输入一个,“会员”现场看起来抵消这样的:
Date: November 7th, 2016
Member:
我正在寻找一种方式,而不扰乱对准输入文字。
更新2
我忘了提及这有作为外部脚本工作。这意味着,如果我打开NotePad并创建一个脚本来填写Word文档中的一个字母,那么它应该如何工作。我为此道歉...先于自己,忘记了细节。
更新3
我使用的是从代码,我用它来寻找任何打开的Internet Explorer窗口得出下面的代码。我知道IE和Word是两个不同的东西,但我希望我可以使用壳牌找到Word文档,并能够操纵内容。
Dim WinDoc, Window, TitleFound
Dim WShell, objShell
Function Check_Document()
On Error Resume Next
Set WShell = CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
On Error GoTo 0
Window = "non-member template.docx" 'Tried this without the .docx and failed
TitleFound = False
For Each WinDoc In objShell.Windows()
If Err.Number = 0 Then
If InStr(WinDoc.Document.Title, (Window)) Then
Set objWord = WinDoc
TitleFound = True
Exit For
End If
End If
Next
If TitleFound = False Then
MsgBox "Word doc not found"
Else
MsgBox "Found Word doc!!"
End If
End Function
也许在word的搜索功能中使用通配符/奇怪的正则表达式? – Jbjstam
我不知道如何使用正则表达式来找到我需要输入数据的位置,然后确保它不会抵消对齐。虽然,我确实看到如何使用正则表达式替换并用所需的文本替换空格。这是你的意思吗? – Lou