Vba 在Excel用户窗体上创建永久性文本框
因此,我正在为我的客户创建一个工具和用户指南。我正在尝试以用户表单的形式将用户指南集成到Excel中。我的第一次尝试是将它们作为word文档的图像插入,但是,如果用户指南被更新,那么任何人都需要做大量的工作来更新用户表单。因此,我想看看是否可以有一个按钮供用户单击,该按钮可以清除userform并在用户指南更新时动态地重新创建它。我的问题是,当我运行代码时,我创建的包含用户指南文本的文本框在用户窗体关闭后消失 我是否必须设置一定数量的文本框,或者在用户向用户指南中添加新部分的情况下,这是否可以是动态的?我是否可以创建文本框,在用户窗体关闭后保留在其上 我的代码如下:Vba 在Excel用户窗体上创建永久性文本框,vba,excel,ms-word,Vba,Excel,Ms Word,因此,我正在为我的客户创建一个工具和用户指南。我正在尝试以用户表单的形式将用户指南集成到Excel中。我的第一次尝试是将它们作为word文档的图像插入,但是,如果用户指南被更新,那么任何人都需要做大量的工作来更新用户表单。因此,我想看看是否可以有一个按钮供用户单击,该按钮可以清除userform并在用户指南更新时动态地重新创建它。我的问题是,当我运行代码时,我创建的包含用户指南文本的文本框在用户窗体关闭后消失 我是否必须设置一定数量的文本框,或者在用户向用户指南中添加新部分的情况下,这是否可以是
For i = 1 To totPara
If wrdDoc.Paragraphs(i).Style = wrdDoc.Styles("Heading 1") Or wrdDoc.Paragraphs(i).Style = wrdDoc.Styles("Heading 2") Then
headerCtr = headerCtr + 1
If headerCtr = 2 Then
labelCtr = labelCtr + 1
Set tempTxt = Nothing
Set tempTxt = userGuide.Controls.Add("Forms.TextBox.1", "Test" & labelCtr, True)
With tempTxt
.Height = 276
.Width = 288
.Top = 54
.Left = 42
.MultiLine = True
End With
tempTxt.Text = wrdDoc.Paragraphs(i).Range.Text & Chr(13)
ElseIf headerCtr > 2 Then
Exit For
End If
ElseIf labelCtr <> 0 Then
tempTxt.Text = tempTxt.Text & wrdDoc.Paragraphs(i).Range.Text & Chr(13)
End If
Next i
i=1至1的
如果wrdDoc.段落(i).Style=wrdDoc.样式(“标题1”)或wrdDoc.段落(i).Style=wrdDoc.样式(“标题2”),则
headerCtr=headerCtr+1
如果headerCtr=2,则
labelCtr=labelCtr+1
Set TELTEXT=无
Set testxt=userGuide.Controls.Add(“Forms.TextBox.1”、“Test”和labelCtr,True)
带着诱惑
.高度=276
.宽度=288
.Top=54
.左=42
.MultiLine=True
以
testext.Text=wrdDoc.parations(i).Range.Text&Chr(13)
如果HeaderCtrl>2,则
退出
如果结束
ElseIf labelCtr 0然后
TELTXT.Text=TELTXT.Text&wrdDoc.parations(i).Range.Text&Chr(13)
如果结束
接下来我
目前,我将其设置为仅当测试的headerCtr
等于2时才创建一个新的文本框,但最终我希望为9个部分中的每一部分创建一个新的文本框
提前感谢您的帮助。您可以选择隐藏用户表单,而不是关闭用户表单。当文本框被隐藏时,仍然可以从调用表单访问文本框
Dim frm1 As frmMainInput
Set frm1 = New frmMainInput
frm1.tbProjectNumber.Value = iProject_Number
frm1.txtDocsInUse.Text = sDocsInUse
frm1.Show
If frm1.Proceed = False Then
GoTo Local_Exit
End If
iProject_Number = CInt(frm1.tbProjectNumber.Value)
最终调用frm.close并设置frm=Nothing
在UserForm中:
Private Sub cmdCancel_Click()
Proceed = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
Proceed = True
Me.Hide
End Sub
没有关于刷新图像等的线索。c我想看看这个:这怎么不是一个合理的问题?我正在创建文本框,我想知道的是,是否有一种方法可以让它们永久地附加到用户表单上,并且在用户表单关闭时不会消失。我说过这不是一个合法的问题吗?你读过链接了吗?它还说“如果你正在读这篇文章,而你没有处于那个位置”。想想你自己。无论如何,本文的其余部分将展示如何分解代码,以找出问题所在。我发现它非常有用。加载表单时添加的任何控件都将在表单关闭时删除。如果需要永久控件,则需要操纵设计器,这意味着用户必须在其安全设置中对VBA项目具有受信任的访问权限。我建议找到另一种方法-指向文档本身的超链接或.chm帮助文件。