代码之家  ›  专栏  ›  技术社区  ›  DatHFA

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

  •  0
  • DatHFA  · 技术社区  · 1 年前

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

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

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

    我的代码将完成所有这些事情,但使用三个连续的输入框来输入数据。

    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
    

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

    0 回复  |  直到 1 年前
        1
  •  0
  •   Black cat    1 年前

    假设用户表单的名称为Userform1,文本框的名称为TextBox1、TextBox2和TextBox3。“提交”按钮的名称为CommandButton1,对于“取消”按钮为CommandButton 2。

    如果单击“取消”,脚注将被删除。如果不需要,请删除CommandButton2_Click sub中具有赋值的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个标签来识别文本框。