0

「TEST」と「Report」の 2 つのワークブックがあります。次のコードを使用しました。

MsgBox Sum_Visible_Cells(Worksheets("Raw Data").Range("M2:M" & LastRow(Worksheets("Raw Data"))))

メッセージボックスに合計値を返します。ワークブック「TEST」のワークシート「Raw Data」のセルに合計を返すこともできました。

ワークシート「シート1」、ワークブック「レポート」の範囲「L9」の値をExcelに返すにはどうすればよいですか?

4

2 に答える 2

0

これを行うのにvbaは必要ありません。セルSheet1!L9に数式を入力します

=SUBTOTAL(109,'Raw Data'!$M:$M)

VBAでそれを行うには

Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = "Result of your function"

注:ファイル拡張子を含める必要があり、ブックが開いている必要があります。

編集:
Sum_Visible_Cellsワークシート関数ではありません。

これを試してください(コードがワークブックにあると仮定しますTest

Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = _
    Application.WorksheetFunction.Subtotal(109, ThisWorkbook.Worksheets("Raw Data").Columns(13))

あなたのコメントから、あなたRange("M2:M)は合計から行1を除外したいと思います。
数値の合計でない限り、M1列全体で問題ありません。行1数値であり、それを除外する場合は、

Dim rng as Range
With ThisWorkbook.Worksheets("Raw Data")
    Set rng = .Range(.Cells(2,13), .Cells(.Rows.Count, 13).End(xlUp))
End With 
Application.Workbooks("Report.xlsm").Worksheets("Sheet1").Range("L9") = _
    Application.WorksheetFunction.Subtotal(109, rng)
于 2012-05-24T09:13:36.493 に答える
0

あなたが説明する順序でそれを行う必要がありますか?

添付のリンク「閉じたファイルから値を取得するためのVBA」の提案を使用して、GetValue関数(公開)を追加し、テストワークブックから情報を取得する場合は次のようになります。

TESTワークブック:

  • Sheet1、Cell A1 Sum_Visible_Cells(Worksheets( "Raw Data")。Range( "M2:M"&LastRow(Worksheets( "Raw Data"))))数式などの既存の数式を含む範囲を作成します

REPORTワークブックでは、Sheet1セルL9のGetValue()関数を使用します。

=GetValue(p, f, s, a)

どこ

  • p="テストワークブックへのパス"
  • f = "TEST.xls"
  • s = "Sheet1"
  • a = "A1"
于 2012-05-24T10:41:31.000 に答える