web-dev-qa-db-ja.com

新しいシートからExcelの数式にセルを自動的に追加することはできますか?

経費を追跡するための新しい財務スプレッドシートを作成したいと思います。経費明細書は、数式を入力するためのスプレッドシートを事前に生成できないときに作成されるためです。他のシートの合計を追加した要約シートがあり、現在、月末に手動で数式を作成しています。複数のシートを自動的に合計し、作成時に新しいシートを合計に追加する方法はありますか?

これは標準のExcelを使用して可能ですか、それともVBAを使用する必要がありますか?

複数のシートに同じセルを追加する方法をすでに知っています(参照: Excel-複数のシートにまたがる数式?

このvbaスクリプトは、私が実行しようとしていることへの道の一部ですが、正確には実行したいことではありません: Excel-新しいタブが作成されたときにセルからデータを自動的にインポートします

P.S.私はVBAを知りませんが、学びたいと思っています。私はC/Pythonに慣れています。

2
Tom Wilkinson

たとえば、現在の合計がSheet1!A1にあるとします。そうです、他のシートからすべての合計を取得して合計する実行可能なマクロを作成します。

各シートの合計がセルA10にあると仮定しましょう-

Sub updatethesum()
Dim ws As Worksheet
    Dim i As Double
    i = 0
For Each ws In ThisWorkbook.Worksheets

    If ws.Name <> "Sheet1" Then
        i = i + ws.Range("A10")
    End If

Next
Sheets("Sheet1").Range("A1") = i
End Sub

誰かがA10に数字の代わりに文字を入れるのではないかと心配している場合は、次のように入力を制限できます-

Sub updatethesum()

Dim ws As Worksheet
    Dim i As Double
    i = 0
    Dim bletter As Boolean

For Each ws In ThisWorkbook.Worksheets

    If ws.Name <> "Sheet1" Then
        bletter = IsNumeric(ws.Range("A10").Value)
            If bletter = True Then
             i = i + ws.Range("A10")
            End If
    End If

Next
Sheets("Sheet1").Range("A1") = i
End Sub
1
Raystafarian