Word中的自动求和表

时间:2017-02-17 00:20:50

标签: vba word-vba

我正在尝试使用底部单元格中的简单<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "code"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $id = $_POST['id']; $lang= $_POST['lang']; $sql = "UPDATE users SET lang='$lang' WHERE id = '$id'"; if ($conn->query($sql) === TRUE) { echo "New record updated successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?> 公式在Word 2010中创建一个3x6表。我的问题是当用户更改上述单元格之一的值时,自动调整/计算总和。

有谁知道如何使用VBA为此创建宏?

由于

2 个答案:

答案 0 :(得分:0)

与Excel公式不同,Word字段不会自动更新,也没有设置让他们这样做。拦截文档中任何更改的VBA解决方案都不可行,因为它会触发每次击键的代码。

根据偏好的顺序,有实用的解决方案:

选项1 - 手动更新文档:

Ctrl+A (select All) Then press F9 (update all document fields).

您还可以选择性地对所需字段进行更新。例如,用鼠标选择表格的最后一行,然后按F9

选项2 - 嵌入Excel Table并使用最后一行的公式。 Excel将在编辑表时自动更新公式。

选项3 - 拦截应用程序的WindowSelectionChange事件

的更改
' Code module ThisDocument
Option Explicit
Private WithEvents app As Word.Application
Private Sub app_WindowSelectionChange(ByVal Sel As Selection)
    If Sel.Range.InRange(Tables(1).Range) Then Fields.Update ' or: Tables(1).Fields.Update
End Sub
Private Sub Document_Open()
    Set app = Me.Application
End Sub

选项4-使用VBA创建一个自动更新程序,这个函数每隔一秒左右定期调用一次,并更新所有字段(如果需要,还可以选择)。

' Code module ThisDocument
 Option Explicit
 Public Sub updateFields()
    Fields.Update ' or: Tables(1).Fields.update
    Application.OnTime Now + TimeSerial(0, 0, 1), "ThisDocument.updateFields"
End Sub
Private Sub Document_Open()
    Application.OnTime Now + TimeSerial(0, 0, 1), "ThisDocument.updateFields"
End Sub

答案 1 :(得分:0)

所以我明白了。通过进入开发人员模式,您可以向文档添加文本框,然后使用宏链接文本框并创建自动求和功能。