编辑标题内的文本框(第一页不同)

Posted

技术标签:

【中文标题】编辑标题内的文本框(第一页不同)【英文标题】:Edit a textbox within header (first page different) 【发布时间】:2020-07-29 03:28:43 【问题描述】:

编辑:我可以让它在单独的文档中工作,但不能基于模板文档。

我正在尝试在循环内编辑模板创建文件的标题中的文本框。文本框名称为“文本框 2”。它已经在框中有文本。目标是用字符串 CountryName2 替换单词之一(“COUNTRYNAME”)(请参阅下面的完整子发布)。以下是实际进入和编辑文本框的相关代码:

Set tFile = Documents.Add(tPath)
       Selection.InsertFile (cDirPath & "\" & cFile)
       Debug.Print tFile.Sections(1).Headers(wdHeaderFooterFirstPage).Shapes.Range(Array("Text Box 2")).TextFrame.TextRange.Text 'This will print the text within the textbox with DebugPrint but if I try to set it = to something and get rid of Debug.Print (allegedly to edit/add text) nothing happens

我可以使用简单的方法编辑标题中的文本:tFile.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Text = "Replaced Header Text" 但它用该文本替换了整个标题(我在标题上已经有很多我不想更改的内容 - 只有一个也是唯一的文本框。

整个子:子的目的是打开一个目录中的一堆文件并将它们复制到一个新的模板文档中,然后更改该模板标题以匹配文件名中找到的国家名称。

Sub CopyAndPaste()

Dim tPath As String 'template path string
Dim tFile As Document 'template file
Dim cDirPath As String 'copy directory Path
Dim cName As String 'name of copy
Dim CountryName As String ' country name1
Dim CountryName2 As String ' country name2
Dim pDir As String
Dim findTextH As String

findTextH = "COUNTRYNAME"

pDir = "C:\Users\XXX\XXXX\Desktop\Test\Saved\"

    With Application.FileDialog(msoFileDialogFilePicker) 'pick the template document path
        .ButtonName = "Pick Template"
        .Title = "Pick the template"
        If .Show <> 0 Then
            tPath = .SelectedItems(1)
        End If
    End With
    
    With Application.FileDialog(msoFileDialogFolderPicker) 'pick the directory with the files path
        ' show the file picker dialog box
        If .Show <> 0 Then
            cDirPath = .SelectedItems(1)
        End If
    End With

cFile = Dir(cDirPath & "\" & "*.docx")

Do While cFile <> ""

    cName = GetFilenameFromPath(cFile) 'get the original file name without path
    
        CountryName = Mid(cName, 19)
        CountryName2 = Left(CountryName, Len(CountryName) - 5)

    Set tFile = Documents.Add(tPath)
        Selection.InsertFile (cDirPath & "\" & cFile)
        Debug.Print tFile.Sections(1).Headers(wdHeaderFooterFirstPage).Range.Text
        
        '.Shapes.Range(Array("Text Box 2")).TextFrame.TextRange.Text = "Testing" ***FOR TESTING&***
        
    tFile.SaveAs2 FileName:=pDir & cName
    tFile.Close
    cFile = Dir
    
Loop

End Sub

【问题讨论】:

【参考方案1】:

我解决了这个问题。这是由于第二页标题上的隐藏文本框搞砸了。文本框充满了白色文本!!!最终以某种方式解决了。

【讨论】:

以上是关于编辑标题内的文本框(第一页不同)的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 文本框对齐 - 页脚

在 jquery 数据表中分页后保留文本框值

在indesign中如何让文字自动灌入下一页

选择文本框形状内的图片

UIAlertController 内的多行可编辑文本 UITextview?

vba打开word后每页插入文本框