Получить значение формулы из таблицы WORD VBA - PullRequest
0 голосов
/ 11 мая 2018

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

Я настроил формулу следующим образом:

Selection.InsertFormula Formula:="=MAX(A1:B1)", NumberFormat:=""

Нокогда я хочу получить формулу из таблицы, она выбрасывает меня "Expected Function or Variable"

Вот как я хочу взять формулу из ячейки таблицы Word:

Dim formula As Variant
formula = Selection.Cells("A1:C2").Formula

Но..используя это, я не могу получить необходимую формулу.

Это полный код, который у меня есть:

ActiveDocument.tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
    3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
    wdAutoFitFixed

Selection.TypeText Text:="12"
Selection.InsertFormula Formula:="=MAX(A1:B1)", NumberFormat:=""

MsgBox Selection.Cells("C1").Formula, vbOKOnly

Я создаю таблицу 2x3 в первом столбце и во втором, который я вставил 2числа («A1» = 1, «B1» = 2) и в третьем столбце (C1) я вставил соответствующую формулу.

Когда я пытаюсь распечатать формулу из существующей таблицы, она дает мне"Expected Function or Variable" ошибка.

1 Ответ

0 голосов
/ 12 мая 2018

Может быть, Formula только для записи. Я не мог найти это однозначно в документах, хотя в документах говорилось, что Formula создает Field.

Может быть, это достигнет того, что вы ищете:

Sub test()
    Dim t As Word.Table
    Set t = ThisDocument.Tables.Add(Range:=Selection.Range, NumRows:=2, NumColumns:= _
        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed)

    t.Cell(1, 1).Range.Text = "15"
    t.Cell(1, 2).Range.Text = "20"
    t.Cell(1, 3).Formula Formula:="=MAX(A1:B1)", NumFormat:=""

    MsgBox t.Cell(1, 3).Range.Fields(1), vbOKOnly
    Set t = Nothing
End Sub

Примечание: приведенное выше возвращает формулу. Если вы хотите получить результат формулы, используйте Cell(1,3).Range.Text.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...