0

背景:我想使用来自 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 资源管理器中重新打开(表示“最终用户”)。但是在这种情况下,意味着在以“最终用户”身份打开模板文档后(这样我就可以从中保存一个新文档而不覆盖模板),即使我输入了一些内容,TextBox 的内容/值也是空的进去。

那么,如何在模板的“文档模式”中读出TextBox的数据呢?

4

2 回答 2

2

据推测,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 对象。

于 2019-01-03T12:51:20.147 回答
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 并从模板运行宏(您可能必须从“宏输入”下拉菜单中选择模板)。结果:我的表单出现了,我输入了文档的名称,按确定,然后出现 Word 另存为对话框,其中包含我为文档提供的名称。

于 2012-07-07T14:47:34.293 回答