Я обычно работаю над определенным шаблоном, заголовок которого отформатирован следующим образом;

[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 ответ1

0

Следующий скрипт 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .