Извлечение табличных данных из тела электронной почты 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