通过使用VBA宏获取文本框在Word中的价值,但在Word模板

问题描述 投票:0回答:2

背景:我想用一个特定的输入的文本从在另存为对话框中的默认文件名文本框。

我有我的文档中实施了以下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的数据?

vba ms-word word-vba word-template
2个回答
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和运行从模板的宏(您可能需要选择从“宏的位置”下拉模板)。结果:我的形式出现,我的文档,按OK,道保存输入名称为对话框出现与我给了文件的名称。


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)标识特定文本框形状对象。

© www.soinside.com 2019 - 2024. All rights reserved.