【问题标题】:VBA - simple math calculations in word?VBA - Word中的简单数学计算?
【发布时间】:2015-02-24 00:54:00
【问题描述】:

所以我正在尝试做一些不可思议的事情,实际上是在单词表中做一些基本的计算,而不必求助于 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

【问题讨论】:

  • 您可以将您的编辑作为您自己问题的答案并接受它,以便将来的搜索者可以找到它。您可以删除有关自动更新的其他问题并提出新问题。它并没有那么严格,但“这个网站就是为了获得答案。它不是一个讨论论坛。没有闲聊。” stackoverflow.com/tour
  • 我的错。现在就去做。

标签: vba ms-word


【解决方案1】:

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

Word 的电子表格优于作为格式插入的 Excel 表格。

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

【讨论】:

    【解决方案2】:
    • 使用适当的选择器从文本或表格的范围中选择值
    • 使用 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

    似乎这是关于同样具有挑战性的发票任务:-)

    【讨论】:

    • 我刚刚发现了同样的事情 :) 我对 VBA 还是比较陌生,所以我不太了解它。我知道很难用文字来完成,但同时我真的不想同时使用 Word 和 Excel 来完成看似如此简单的事情。如果一切都失败了,那将是我最后的选择。
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多