FORMTEXT出现在从受保护的表单字段值生成的Word文件名和VB脚本的BookMark中

时间:2013-10-08 20:48:06

标签: vb.net templates ms-word

我在Word 2010 Doc中使用以下VB脚本保存为受表单字段保护的Microsoft Word启用宏的模板:

Sub SaveWithBkMarkedText()
    'This code saves the Word file using the bookmark value for Maintenance Memo.
   'The file is also saved to a folder in KnowHow for files related to this template.
   Dim FileName As String
   FileName = ActiveDocument.Bookmarks("mmn").Range.Text
   'Use the C:\ code when saving the file locally
   ActiveDocument.SaveAs "C:\Download\TemplatesFolders\" & FileName & ".doc"
   MsgBox "Your Draft has been saved to KnowHow's Release Documentation site." & _
      &vbCrLf & "The file name uses the MM that you included earlier: " & FileName, _
       vbInformation + vbOKOnly, "Draft Saved to Minerva"
End Sub

为FORMTEXT旧格式对象输入表单字段的值使用书签作为文件名。例如,如果用户输入12345作为值,则使用此值作为文件名保存文件:12345.doc。这个工作正常,直到一周前文件名现在以FORMTEXT 12345.doc作为前缀。我尝试在不同机器上的旧版Word中使用相同的VB脚本,并使用从头开始添加脚本的新模板创建,同样的问题也出现在该机器上。在此之前,我能够更新我的模板没有问题,但现在我不能更新这个FORMTEXT字段而不影响整个文件。我可以更新模板中不使用Bookmark值作为文件名的任何其他FORMTEXT,它可以工作。此外,我已尝试将书签引用更改为另一个FORMTEXT对象,以及将文件另存为.DOCX,无论如何都会出现同样的问题。是什么导致FORMTEXT出现在文件名中?

3 个答案:

答案 0 :(得分:0)

您必须取消保护文档(模板),然后进行VBA编程。一旦完成,那么你可以再次保护它(填写表格),当你运行宏时,你不会在文件名中看到“FORMTEXT”。 希望它有所帮助。

答案 1 :(得分:0)

对OP来说,你解决了这个问题吗?我现在遇到同样的问题,我使用带有书签的表单字段文本,并使用VB.net获取bookmark.text,现在以FORMTEXT为前缀,只使用自己的书签,然后就OK了,没有前缀。我将尝试使用代码从结果中删除前9个字符,解决方法,是的,但它可能会有效。

答案 2 :(得分:0)

知道这是一个旧线程,但遇到了同样的问题。作为一种解决方法...... 将FORMTEXT替换为null“”。在OP环境中:

Dim FileName As String
   FileName = ActiveDocument.Bookmarks("mmn").Range.Text 
   FileName = Replace(FileName, "FORMTEXT ", "") 

不是问题的“修复”或优雅但它有效。