2012-07-31 123 views
0

我想總結一個excel工作簿中的工作表範圍,並將其寫入另一個工作簿。我想出了一個下面的代碼,但它不工作。使用VB.NET將公式寫入excel單元格(此代碼有什麼錯誤?)

1)它會打開一個文件打開的窗口,詢問我選擇工作簿中選擇寫「0」值的工作簿後更新

2)。

代碼:

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

嘗試改變這一行:

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

我綁兩個工作簿到Excel應用程序的1個實例。這沒有經過測試,但我認爲這樣,Excel就會明白它是您嘗試插入的xl1工作簿中的工作表。

如果不是,則可能需要在公式中完整定義您參考的工作簿。

希望這會有所幫助。

+1

+1。看不到任何兩個Excel實例的好理由,並且該公式絕對不會識別跨實例的st1。 – 2012-07-31 18:45:42

+0

@Doug,我同意。我從來沒有必要使用2個獨立的Excel實例來完成我需要的任何事情。另外,我覺得它更受限制,例如,跨實例使用Office剪貼板(當使用2個實例時,我遇到了奇怪的問題)。 – 2012-07-31 18:50:13

+0

@ joseph4tw:這次又要求我選擇一個文件,但它寫了公式。現在它顯示REF。有沒有什麼辦法可以順利地寫公式而不用打開這個文件打開對話框? – mrn 2012-07-31 19:04:01

0

這爲我工作:

Dim xlsApp As New Microsoft.Office.Interop.Excel.Application 
xlsApp.DisplayAlerts = False 
相關問題