背景:我想用一个特定的输入的文本从在另存为对话框中的默认文件名文本框。
我有我的文档中实施了以下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资源管理器重新打开它(指为“最终用户”)。但在这种情况下,打开模板文件为“最终用户”(这样我就可以保存新文档出来的,而不是覆盖模板),内容/文本框的值是空的,之后意味着即使我输入了什么东西进去。
所以,我怎么能读出模板“文件模式” TextBox的数据?
我怎么可以读出在模板的“文件模式” 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和运行从模板的宏(您可能需要选择从“宏的位置”下拉模板)。结果:我的形式出现,我的文档,按OK,道保存输入名称为对话框出现与我给了文件的名称。
据推测,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)标识特定文本框形状对象。