VBA - 单词中的简单数学计算?

时间:2015-02-21 23:53:03

标签: vba ms-word word-vba

所以我试图做一些不可思议的事情,实际上在一个单词表中做一些基本的计算,而不必诉诸于Excel。我已经建立了一段时间的发票生成器,这几乎是我离开的最后一件事。

问题很简单..如何将一个单元格中的数字乘以第二个单元格中的数字,以便在第三个单元格中得到结果?我无法弄明白,但听起来很简单。理想情况下,它会在从一个单元格重新聚焦到另一个单元格后执行。

有什么想法吗?

编辑:

嗯,真的很容易。我需要的只是Val功能。这是代码:

Dim qty1 As Integer
Dim qty2 As Integer
Dim qty3 As Integer

Dim price1 As Integer
Dim price2 As Integer
Dim price3 As Integer

qty1 = Val(ActiveDocument.Tables(5).Cell(2, 2).Range.Text)
qty2 = Val(ActiveDocument.Tables(5).Cell(3, 2).Range.Text)
qty3 = Val(ActiveDocument.Tables(5).Cell(4, 2).Range.Text)

price1 = Val(ActiveDocument.Tables(5).Cell(2, 3).Range.Text)
price2 = Val(ActiveDocument.Tables(5).Cell(3, 3).Range.Text)
price3 = Val(ActiveDocument.Tables(5).Cell(4, 3).Range.Text)

ActiveDocument.Tables(5).Cell(2, 4).Range.Text = qty1 * price1
ActiveDocument.Tables(5).Cell(3, 4).Range.Text = qty2 * price2
ActiveDocument.Tables(5).Cell(4, 4).Range.Text = qty3 * price3

2 个答案:

答案 0 :(得分:0)

  • 使用适当的选择器从文本或表格中的范围中选择值
  • 使用 Val()函数将文本范围内的数字转换为适当类型的数值
  • 乘以数字使用乘法运算符*
  • 在另一个单元格或其他单词范围内输出结果
  • 根据需要格式
  • 点击某个按钮

    执行您的宏
    Sub multiply_some_cells()
    
    Dim t1, t2 As table
    Dim a, b, m As Double
    
    ' first table
    Set t1 = ActiveDocument.Tables(1)
    
    ' last table
    Set t2 = ActiveDocument.Tables(ActiveDocument.Tables.Count)
    
    ' note: first row starts at 1, first column at 1
    ' we pick text from 1st row 2nd column and 
    ' use Val method to convert to appropriate type
    a = Val(t1.Cell(1, 2).Range.Text)
    
    ' then form some other cell
    b = Val(t1.Cell(2, 2).Range.Text)
    
    ' note Val stops converting at the first 
    ' character that cannot be interpreted
    ' as a numeric digit, numeric modifier, numeric punctuation, 
    ' or white space.
    
    ' To multiply a number use a Multiplication Operator *
    m = a * b
    
    t2.Cell(1, 1).Range.Text = "multiplication " & a & " x " & b & " =" & m
    
    End Sub
    

如果您决定继续VBA任务,请阅读以下文章: http://visualbasic.about.com/od/learnvba/a/wdvbatble.htm

似乎它与发票任务相同: - )

答案 1 :(得分:0)

Word也是一个电子表格。如果在“帮助”的表中键入“执行计算”,您将看到如何执行此操作。

Word的电子表格比格式化时插入的Excel表格更好。

基本上,方程字段可以引用表格和表格单元格。