使用VB.NET将公式写入excel单元格(此代码有什么问题?)

时间:2012-07-31 18:34:02

标签: vb.net excel formula

我想从一个excel工作簿的工作表中总结一个范围,并将其写入另一个工作簿。我提出了以下代码,但它没有用。

1)它打开一个文件打开窗口,要求我选择要更新的工作簿

2)选择工作簿后,它将“0”写为值。

代码:

Dim xl1 As New Excel.Application
Dim xl2 As New Excel.Application

Dim wb1 As Excel.Workbook
Dim wb2 As Excel.Workbook

Dim st1 As Excel.Worksheet
Dim st2 As Excel.Worksheet

wb1 = xl1.Workbooks.Open("F:\excelsumtest\file1.xlsx")
wb2 = xl2.Workbooks.Open("F:\excelsumtest\file2.xlsx")

st1 = wb1.Worksheets(1)
st2 = wb2.Worksheets(1)

st2.Cells(1, 1).formula = "=Sum(st1!A1:S1)"

干杯

2 个答案:

答案 0 :(得分:2)

尝试更改此行:

wb2 = xl2.Workbooks.Open("F:\excelsumtest\file2.xlsx")
'to this:
wb2 = xl1.Workbooks.Open("F:\excelsumtest\file2.xlsx")

我将两个工作簿绑定到一个Excel应用程序实例。这没有经过测试,但我认为这样,Excel会理解它是您尝试插入的xl1工作簿中的工作表。

如果没有,您可能必须完全定义您在公式中引用的工作簿。

希望这有帮助。

答案 1 :(得分:0)

这对我有用:

Dim xlsApp As New Microsoft.Office.Interop.Excel.Application 
xlsApp.DisplayAlerts = False