Более сложный макрос слова, чем я привык (т.е. я не могу его записать) - PullRequest
3 голосов
/ 07 октября 2009

Я пытаюсь написать макрос слова, который выбирает все, что является заголовком 2 (или любым конкретным стилем), копирует его и вставляет в документ Excel. Запись макросов здесь не работает, и я озадачен синтаксисом необходимых команд. Можно ли это сделать?

P.S. Было бы здорово, если бы он мог выбрать любой стиль, к которому был наведен курсор (т. Е. Если щелкнуть слово заголовка 1, а затем запустить макрос, он выбирает все, что относится к заголовку 1), но я сомневаюсь, что это близко к возможному.

Большое спасибо, и я надеюсь, что скоро получу ответы (если повезет, сегодня вечером).

Pavja2

Это то, что у меня есть (обратите внимание, у меня НЕТ ИДЕИ, как сделать Excel, поэтому, если кто-нибудь знает, что это будет большим подспорьем):

 Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles( _
    "Heading 2,Heading 2 Char Char2 Char1,Heading 2 Char1 Char Char1 Char,Heading 2 Char Char Char Char1 Char,Heading 2 Char1 Char Char Char1 Char Char1,Heading 2 Char Char Char Char Char1 Char Char,Heading 2 Char2 Char Char Char Char Char,Heading 2 Cha" _
    )
Selection.Find.ParagraphFormat.Borders.Shadow = False
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Copy

Итак, кто-нибудь может понять это ...? Удар ... Мне действительно нужны ответы на этот вопрос ...

1 Ответ

4 голосов
/ 26 июля 2010

Это короткий пример, который не касается части Excel, но, надеюсь, принесет пользу Он использует стиль из выделения или начала выделения и отображает вывод в окне «Немедленно».

Public Sub SelectStyles()
    On Error GoTo MyErrorHandler

    Dim currentDocument As Document
    Set currentDocument = ActiveDocument

    Dim selectedStyle As String
    selectedStyle = Selection.Style

    Dim findRange As Range
    Set findRange = currentDocument.Range
    findRange.Find.ClearFormatting
    findRange.Find.Style = selectedStyle

    Do While (findRange.Find.Execute)
        Debug.Print findRange.Text
        DoEvents
    Loop

    Exit Sub

MyErrorHandler:
    MsgBox "SelectStyles" & " error: " & Err.Number & vbCrLf & Err.Description
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...