【发布时间】:2019-02-22 21:52:46
【问题描述】:
我已经为课程设置了一个可填写的表格。我正在尝试根据所选课程和开始日期自动填充课程结束日期。
它不是在进入“结束”控件时触发,而是在输入所有引发重复运行时错误的控件时触发。我愿意在单击时填充该字段,但这似乎不是一个选项。
Private Sub Document_ContentControlOnEnter(ByVal Endate As ContentControl)
'Declare variable names to deal with the content control data
Dim SD As ContentControl
Dim TC As ContentControl
Dim TC1 As ContentControl
Dim ED As ContentControl
Dim NewDate
'Connect each variable name to its content control
Set TC = ActiveDocument.SelectContentControlsByTag("Training").Item(1)
Set SD = ActiveDocument.SelectContentControlsByTag("Stardate").Item(1)
Set ED = ActiveDocument.SelectContentControlsByTag("Endate").Item(1)
'For some reason, twice removed from the source works better
Set TC1 = TC
If SD.Range.Text <> "Click to enter a date" Then
NewDate = DateValue(SD.Range.Text)
'Look at Training Content Control - what was selected.
'If one of the two longer courses is picked, add 2 days to the start date
'and use that as the end date. Otherwise just add one day.
Select Case TC1.Range.Text
Case "Basic Skills"
ED.Range.Text = Format((NewDate + 2), "MMM d, yyyy")
Case "Caseworker"
ED.Range.Text = Format((NewDate + 2), "MMM d, yyyy")
Case Else
ED.Range.Text = Format((NewDate + 1), "MMM d, yyyy")
End Select
End If
'Once we're done, re-set the variables for the next round. This does not change
'the content of the form.
Set TC = Nothing
Set SD = Nothing
Set ED = Nothing
End Sub
【问题讨论】:
-
The documentation 对此并不十分清楚,但它确实说它会在“输入”控件时触发。我猜当您使用
SelectContentControlsByTag时,您是通过选择它来“进入”控件。我会尝试枚举Document.ContentControls集合来查找控件。