0

ある 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)"

乾杯

4

2 に答える 2

2

この行を変更してみてください:

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

両方のブックを Excel アプリケーションの 1 つのインスタンスに関連付けています。これはテストされていませんが、この方法で Excel は、挿入しようとしているのが xl1 ワークブックのワークシートであることを理解すると思います。

そうでない場合は、数式で参照しているブックを完全に定義する必要がある場合があります。

お役に立てれば。

于 2012-07-31T18:41:21.810 に答える
0

これは私のために働いた:

Dim xlsApp As New Microsoft.Office.Interop.Excel.Application 
xlsApp.DisplayAlerts = False
于 2014-06-10T06:22:10.587 に答える