提前感谢您的帮助!
我在Excel中使用VBA很好。但是,了解Word的差异就等于从头开始学习所有差异!因此,如果您提供的解决方案仅适用于WORD,请进行说明,以便我可以了解它们之间的区别。
所以我的目标有两个主要部分。我相信我已经解决了第1部分,但无法弄清楚第2部分。有可能第1部分需要更改才能使第2部分正常工作,但是我在过去的几周中竭尽全力弄清楚了,现在终于寻求帮助。
目标: 出于在用户窗体中使用“预览面板”文本框的目的,以便用户可以在同一用户窗体上查看通过控件选择构建的实时结果。此外,如果用户更改任何控件选择,实时预览将更新,并保持正确的顺序。
在用户首次通过用户窗体后在预览面板中看到的示例文本:
Original Choice CB 01;原始选择CB 02;原始选择CB 03;等
如果用户更新,则在预览面板中看到的示例文本:
Original Choice CB 01; NEW Choice CB 02;原始选择CB 03;等等
解决了这么远:我已经弄清楚了如何将控件值提取到WORD Doc Section.Last.Range中,然后从该WORD Doc部分中填充PreviewPanel文本框。这是我用来执行此操作的代码:
Sub UpdateWordDoc_AfterUpdate_EVERYcontrol()
Dim docWordObj As Document
Dim cntrl As MSForms.Control
Dim SrcRng As Word.Range
Dim DestRng As Word.Range
Dim MyRng As Word.Range
Set docWordObj = Application.ActiveDocument
Set SrcRng = docWordObj.Sections.Last.Range
SrcRng.MoveEnd wdCharacter, -1
Set DestRng = docWordObj.Sections.Last.Range
DestRng.Collapse Direction:=wdCollapseEnd
For Each cntrl In userform_MemoTemplate.Controls 'Me.Controls
If TypeName(cntrl) = "ComboBox" Then
With DestRng
.InsertAfter cntrl.Name & ": " & cntrl.Value & "; "
.Collapse Direction:=wdCollapseEnd
.MoveEnd wdWord
End With
End If
Next cntrl
userform_MemoTemplate.txtbx_MemoPreview.Value = SrcRng
End Sub
需要帮助: 如果用户检查了他们输入的内容,并决定更改组合框输入,则在用户窗体上出现字段时,需要在目标范围内以相同的顺序更新对输入的更改。我能想象的唯一方法就是简单地通过循环重新加载所有字段。
当事件更改时,如果不重复用户窗体上所有20个以上字段中的代码,是否可以触发这样的循环?
再次感谢您!等不及要学习如何解决这个问题!
亨利