背景:我想使用TextBox中的特定输入文本作为SaveAs对话框中的默认文件名。
我在我的文档中实现了以下VBA脚本,即Word 2010模板.dotm
Sub FileSaveAs()
'for testing
Dim fileName As String
fileName = Me.tb_myTextBox.Value & "_MyFileNameToSave"
MsgBox fileName
'use specific file name in save dialog
With Dialogs(wdDialogFileSaveAs)
.Name = fileName
.Show
End With
End Sub
当我运行它时它工作正常。我保存了.dotm,关闭它并从Windows资源管理器中重新打开它(意思是“最终用户”)。 但在这种情况下,意味着在打开模板文档作为“最终用户”(以便我可以保存新的doc而不覆盖模板)之后,即使我输入了某些东西,TextBox的内容/值也是空的进入它。
那么,如何在模板的“文档模式”中读出TextBox的数据?
答案 0 :(得分:0)
如何在模板的“文档模式”中读出TextBox的数据?
不确定你的意思。这对我有用:
创建表单:
Private Sub btn_OK_Click()
Dim fileName As String
fileName = tb_myTextBox.Value & "_MyFileNameToSave"
With Dialogs(wdDialogFileSaveAs)
.name = fileName
.Show
End With
End Sub
创建一个子来调用此表单:
Sub FileSaveAs()
UserForm1.Show
End Sub
这全部保存在模板/ .dotm中。
现在,从模板创建一个文档(双击模板以启动文档)。 Alt + F8并从模板运行宏(您可能必须从“Macros in”下拉列表中选择模板)。结果:我的表单出现,我输入文档的名称,按确定,然后出现Word Save As对话框,其中包含我给文档的名称。
答案 1 :(得分:0)
大概,OP的意图与以下方面类似:
Sub FileSaveAs()
Dim StrNm As String
With ActiveDocument
StrNm = Split(.Shapes(1).TextFrame.TextRange.Text, vbCr)(0) & "_MyFileNameToSave"
'use specific file name in save dialog
With Dialogs(wdDialogFileSaveAs)
.Name = StrNm
.Show
End With
End With
End Sub
其中.Shapes(1)标识特定的文本框Shape对象。