我通常使用一个特定的模板,其标题格式如下;
[Section Name] -- 10 min -- 0:00 to 0:10
[Section Name 2] -- 15 min -- 0:10 to 0:25
and so on...
我希望第二个“--”后面的部分能够自动生成。也就是说,它将确定它之前的部分花费了多长时间。然后使用它来输入开始和结束。(就像引用前一个单元格的 excel 公式的强大功能一样。)
文本应与标题一致并采用相同的格式。
最后,我想说——Total time: 160 min
我认为我需要使用 VBA 来执行此操作,但我不知道从哪里开始。我本以为这会是 Microsoft Word 的一个常见问题/需求,但我找不到任何人问过类似的问题。
答案1
以下 vba 脚本在以“yourStyle”样式格式化的每个段落中搜索分钟数(第一个“--”之后)。然后它将从 - 到添加到每行的末尾,并将总持续时间(以分钟为单位)添加到文档末尾。
Sub InsertText()
Dim Parag As Paragraph
Dim t0 As Double
t0 = TimeValue("0:00:00")
For Each Parag In ActiveDocument.Paragraphs
With Parag.Range
If .Style = "yourStyle" Then
minutes = TimeValue("00:" + Split(Right(.Text, Len(.Text) - InStr(.Text, "--") - 2))(0) + ":00")
.Collapse wdCollapseEnd
.Move wdCharacter, -1
.InsertAfter (" -- " + Format(t0, "h:nn") + " to " + Format(t0 + minutes, "h:nn"))
t0 = t0 + minutes
End If
End With
Next
Selection.EndKey wdStory, wdExtend
Selection.TypeParagraph
Selection.TypeText (Format(t0, "n") + " minutes")
End Sub