从WORD表VBA获取公式值

时间:2018-05-11 20:45:38

标签: vba ms-word

我确实在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)中插入了相应的公式。< / p>

当我尝试从现有表中打印公式时,它会给我"Expected Function or Variable"错误。

1 个答案:

答案 0 :(得分:2)

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

希望有所帮助。