在Excel Userform上创建永久文本框

时间:2014-05-14 12:06:57

标签: excel vba excel-vba ms-word

所以我正在为我的客户创建工具和用户指南。我试图以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个部分中的每个部分创建一个新文本框。

提前感谢您的帮助。

1 个答案:

答案 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