我正在使用VBA Microsoft Word模板。我构建了一个包含各种复选框,文本框和选项框的用户窗体。我有一个过程,在填写userform后,用户可以再次打开userform以更改选项,新选项将替换以前的选项。以下代码涉及三个不同的复选框,根据所选的框组合,将出现一个句子。到目前为止一切正常,但我想弄清楚的是,如果用户取消选中所有复选框,模板将替换书签范围中的先前文本。以下是完成该过程的代码示例。
Dim Bookmark1 As Range
If Me.CheckBox1.Value And Me.CheckBox2 And Me.CheckBox3 = True Then
Set Bookmark1 = ActiveDocument.Bookmarks("Bookmark1").Range
Bookmark1.Text = "You have selected Apples, Oranges, and Bananas."
ActiveDocument.Bookmarks.Add "Bookmark1", Bookmark1
ElseIf Me.CheckBox1.Value And Me.CheckBox2 = True Then
Set Bookmark1 = ActiveDocument.Bookmarks("Bookmark1").Range
Bookmark1.Text = "You have selected Apples and Bananas."
ActiveDocument.Bookmarks.Add "Bookmark1", Bookmark1
等,直到显示每个组合,除非用户取消选中每个复选框。如果所有三个框都是假的话,我已经尝试制作一个if语句,然后txt等于""
我也试过等于null并且仍然没有工作任何帮助非常感谢。
如果你碰巧知道的话,你会读到这个。 我想为输入到用户窗体中的文本框中的数据分配快捷键,以便在键入用户时只需选择Ctrl Shift C即可输入光标位于word文档中的文本框的值。任何有关这方面的帮助都会非常棒,谢谢!
答案 0 :(得分:0)
我想出了我在If ... Elseif语句结尾处所做的事情,最后一个代码将以前的文本无效设置为Elseif而不是Else
以下是有效的代码
Dim Bookmark1 As Range
If Me.CheckBox1.Value And Me.CheckBox2 And Me.CheckBox3 =. True Then
Set Bookmark1 = ActiveDocument.Bookmarks("Bookmark1").Range
Bookmark1.Text = "You have selected Apples, Oranges, and Bananas."
ActiveDocument.Bookmarks.Add "Bookmark1", Bookmark1
ElseIf Me.CheckBox1.Value And Me.CheckBox2 = True Then
Set Bookmark1 = ActiveDocument.Bookmarks("Bookmark1").Range
Bookmark1.Text = "You have selected Apples and Bananas."
ActiveDocument.Bookmarks.Add "Bookmark1", Bookmark1
Else Set Bookmark1 = ActiveDocument.Bookmarks("Bookmark1").Range
Bookmark1.Text = ""