从用户窗体在 Word 中创建页脚

问题描述 投票:0回答:1

我正在尝试同时更新多个 Word 文档中的页脚。

页脚中应输入三项内容:城市和州、商店编号和日期。

我正在努力:
提示用户打开多个Word文档
显示一个用户窗体,提示用户在文本框中输入数据。
将信息放入文档的页脚中。

我的代码将执行所有这些操作,但使用三个连续的输入框来输入数据。

Sub openAllfilesInALocation()
Dim Doc
Dim i As Integer
Dim varCity
Dim varStoreNumber
Dim varDate

Dim docToOpen As FileDialog
Set docToOpen = Application.FileDialog(msoFileDialogFilePicker)
docToOpen.Show
varCity = InputBox("City")
varStoreNumber = InputBox("Store Number")
varDate = InputBox("Document Date")

For i = 1 To docToOpen.SelectedItems.Count
    'Open each document
    Set Doc = Documents.Open(FileName:=docToOpen.SelectedItems(i))

    With ActiveDocument.Sections(1)
        .Footers(wdHeaderFooterPrimary).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
        .Footers(wdHeaderFooterPrimary).Range.Text = varCity & " " & varStoreNumber & " " & varDate
    End With

    Doc.Save
    Doc.Close
Next i

End Sub

如果我创建一个包含三个文本框(一个用于城市和州,一个用于商店编号,一个用于日期)以及一个提交按钮和取消按钮的用户表单,我需要做什么来引用用户表单并获取数据从文本框中输入并将其输入到页脚中?

vba ms-word userform
1个回答
0
投票

假设用户窗体的名称为 Userform1,文本框的名称为 TextBox1、TextBox2、TextBox3。提交按钮的名称为 CommandButton1,取消按钮的名称为 CommandButton2。

如果单击取消,脚注将被删除。如果您不想要它,请删除 CommandButton2_Click 子项中分配的 3 行。

检查日期是否有效并应用本地格式。

模块

Public varCity       'make avail for the userform
Public varStoreNumber
Public varDate

Sub openAllfilesInALocation()
Dim Doc
Dim i As Integer

Dim docToOpen As FileDialog
Set docToOpen = Application.FileDialog(msoFileDialogFilePicker)
    docToOpen.Show

UserForm1.Show
'varCity = InputBox("City")
'varStoreNumber = InputBox("Store Number")
'varDate = InputBox("Document Date")

For i = 1 To docToOpen.SelectedItems.Count
'Open each document
Set Doc = Documents.Open(FileName:=docToOpen.SelectedItems(i))

With ActiveDocument.Sections(1)
    .Footers(wdHeaderFooterPrimary).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Footers(wdHeaderFooterPrimary).Range.Text = varCity & " " & varStoreNumber & " " & varDate
    
End With

Doc.Save
Doc.Close

Next i

End Sub

用户表单代码模块

Private Sub CommandButton1_Click()
varCity = UserForm1.TextBox1
varStoreNumber = UserForm1.TextBox2
varDate = UserForm1.TextBox3
On Error Resume Next
If IsError(CDate(varDate)) Then
UserForm1.TextBox3.SetFocus
Else
varDate = CDate(varDate)
VBA.Unload UserForm1
End If
On Error GoTo 0
End Sub

Private Sub CommandButton2_Click()
Me.hide
varCity = ""
varStoreNumber = ""
varDate = ""
End Sub

建议添加 3 个标签来识别文本框。

© www.soinside.com 2019 - 2024. All rights reserved.