所以我正在为我的客户创建工具和用户指南。我试图以Userform的形式将用户指南集成到Excel中。我的第一次尝试是将这些作为word文档的图像插入,但是,如果用户指南被更新,这可能意味着任何人都需要更新用户表单的大量工作。所以我想看看我是否有一个按钮供用户点击,这将清除用户窗体并在用户指南更新时动态重新创建它。我的问题是,当我运行我的代码时,我创建的文本框包含用户指南中的文本,在用户窗体关闭后消失。
我是否必须拥有一定数量的文本框,或者在用户向用户指南添加新部分的情况下,这是否是动态的?我可以创建一旦关闭后保留在用户窗体上的文本框吗?
我的代码如下:
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
现在我将其设置为仅在headerCtr
等于2时才创建新文本框以进行测试,但最终我想为9个部分中的每个部分创建一个新文本框。
提前感谢您的帮助。
答案 0 :(得分:0)
您可以选择隐藏用户窗体而不是关闭用户窗体。当它被隐藏时,仍然可以从调用表单访问文本框。
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