Извлечение табличных данных из тела электронной почты Outlook

Я получаю электронную почту Outlook, если тело содержит таблицу, состоящую из нескольких строковых меток и связанной строки текста. Я хочу извлечь три значения, связанные с соответствующей меткой. Первые два поиска находятся на один столбец справа от метки, а последний - на одну строку ниже метки. Я попробовал InStr(), который отлично подходит для извлечения справа от метки, но, похоже, он не работает для значения, которое находится на одну ячейку ниже метки. Могу ли я использовать MoveRight и MoveDown из Excel/Work внутри Outlook VBA или использовать "Range(Rng.Offset (0, 1).Address).Value" и "Range(Rng.Offset (1, 0).Address).Value ", чтобы выбрать значение справа и ниже в Outlook VBA. Ключевым моментом здесь является то, что это структурированная таблица в теле письма.

1 ответ

У меня есть одно письмо с таблицей, которая оказывается вложенной в другую таблицу

поэтому Tables(1).Tables(1) используется

следующий код предназначен для изучения таблицы.

первая строка выделяет ячейку в таблице, так что вы можете проверить, правильно ли вы ссылаетесь на ячейку

вторая и третья строки показывают, как получить значение ячейки таблицы

не пытайтесь исследовать какие-либо range объект в окне часов или в окне местных жителей. это приводит к краху перспективы. (не знаю почему)

если вы хотите изучить какие-либо атрибуты range затем скопируйте тело письма в msWord. не падает при проверке объекта диапазона

я не мог найти ничего, что относится к заголовкам столбцов

Sub aaaaa()

    Application.Inspectors(1).WordEditor.Tables(1).Tables(1).Rows(1).Cells(1).Select
    stop
    Debug.Print Application.Inspectors(1).WordEditor.Tables(1).Tables(2).Rows(3).Cells(4).Range.Text
    Debug.Print ActiveDocument.Tables(1).Tables(1).Cell(1, 1).Range.Text

End Sub
Другие вопросы по тегам