在Access中自动化Excel

在Access中自动化Excel,excel,ms-access,vba,Excel,Ms Access,Vba,我正在做一个需要大量复杂计算的项目,我想在Excel中进行这些计算,但我想让数据库保持Access 作为一个基本示例,如果我在Access中有一个表,例如 +---------+---------+-----+ | Number1 | Number2 | Sum | +---------+---------+-----+ | 1 | 1 | | | 1 | 2 | | | 2 | 2 | | +---

我正在做一个需要大量复杂计算的项目,我想在Excel中进行这些计算,但我想让数据库保持Access

作为一个基本示例,如果我在Access中有一个表,例如

+---------+---------+-----+
| Number1 | Number2 | Sum |
+---------+---------+-----+
|    1    |    1    |     |
|    1    |    2    |     |
|    2    |    2    |     |
+---------+---------+-----+

我想在Excel中计算每行Number1和Number2的总和,然后将结果放回我的Access表中,我该怎么做?我是Access的新手,在查找此场景的示例时非常失败。

如果在Excel中定义一个包含计算结果和关键字字段的命名范围,则可以从Access链接到该Excel范围

使用链接表,Access中的原始数据可以通过更新查询进行更改

为了链接Excel范围,我使用了以下代码:

Sub MountExcel(MyPathToExcelFile, MyTblName, ExcelRange)
Dim ExternalExcel As TableDef

    Set ExternalExcel = CurrentDb.CreateTableDef(MyTblName)
    With ExternalExcel
        .Connect = "Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=" & MyPathToExcelFile
        .SourceTableName = ExcelRange
    End With
    CurrentDb.TableDefs.Append ExternalExcel
    CurrentDb.TableDefs.Refresh
End Sub

在访问对象列表中显示新的链接表之前,有时必须按下F5。

如果您只是尝试求和(或执行其他运算符,如乘或除现有数据),为什么不使用MS Access中内置的SQL功能来创建一个计算字段,为您计算并填充一个新字段?我需要在Excel中进行一些更复杂的计算,这在Access中是不容易做到的。我现在的主要问题是在Access中自动化Excel,而不是自己进行计算,因此我只使用了一个简单的SUM示例。您能否在Excel中以记录集的形式打开Access表,并对这些记录集值进行计算?或者您需要将Access数据导入工作表中吗?我尝试使用本教程:使用该教程,我可以使用recordset在Excel中打开Access表并进行计算,但我仍然无法确定如何获取最终值并将其放回Access表中。