Word VBA 用户表单错误 4218“类型不匹配”

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

首先,这是新的。对于您来说,错误是什么可能是显而易见的。

Private Sub CommandButton2_Click()
Dim UnderskrivTitel As Range
Set UnderskrivTitel = ActiveDocument.Bookmarks(UnderskrivTitel).Range
Dim UnderskrivTitel2 As Range
Set UnderskrivTitel2 = ActiveDocument.Bookmarks(UnderskrivTitel2).Range
UnderskrivTitel.Text = Me.TextBox7.Value
UnderskrivTitel2.Text = Me.TextBox7.Value
End Sub

这是我的代码片段。本质上,我希望用户窗体在 Word 文档中的预定书签中输入一些值。 调试器在第 3 行发现错误(设置 UnderskrivTitel = Active...)有如何修复的想法吗?

额外问题:

  1. 我试图在打开文档时打开表单。我这样写:
Sub AutoNew()
'Kør oplysningsskema når fil åbnes
UserForm1.Show
End Sub 

在项目的“thisDocument”部分,但它没有自动打开? 2.我希望用户窗体记住上次使用时输入的内容,或者在打开时收集(无论哪种更有意义)。知道如何实现这一目标吗?

提前致谢。

尝试了以上方法,希望能成功。关注了 YouTube 上名为“在 MS Word 中创建用户表单并使用其将信息插入书签”的视频,该视频来自名为“LearningEngineer.com”的 YT 频道

vba ms-word userform
1个回答
0
投票

如果您使用该文档,您将了解更多信息。例如,请参阅 https://learn.microsoft.com/en-us/office/vba/api/word.bookmarks.item,您将在其中学习书签名称的正确语法。声明与对象同名的变量从来都不是一个好主意。

仅当您使用模板 (*.dotm) 而不是文档时,

AutoNew
才有效,因为它会在创建新文档时执行。如果您确实使用模板,而且您应该使用模板,那么您应该使用
Private Sub Document_New()
(请参阅模块顶部的下拉菜单)。

要存储以前的输入,您可以使用文档变量(请参阅https://learn.microsoft.com/en-us/office/vba/api/word.document.variables),具体取决于您想要使用以前的原因输入。

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