我想从一个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)"
干杯
答案 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