1

vbaのsum関数でlastRow変数を使用するにはどうすればよいですか?各行の単語数を最後の行までカウントした後、各行の個々の合計を合計して全体の合計列にしたいのですが、範囲をvbaのsum関数にハードコーディングしたくありませんか?別の方法はありますか?

例:

Column:   A   B   C   D   E   F  
NRow 1:   2   3   4   5   6   7  
NRow 2:   3   4   5   6   7   8  
Total 3:  5   7   9   11  13  15

避けたいSUM(R[-2]C:R[-1]C)ですか?同じようSUM(R[lastRow]C:R[-1]C)に機能するものが欲しいです。

ありがとうございました!

4

3 に答える 3

1

このようなもの

  1. アクティブなシートの使用範囲A1を、列の最後に使用されたセルに設定しますF
  2. この範囲の下の最初のセルにCells(rng1.Cells(1).Row + rng1.Rows.Count, 1)移動し、対象範囲内の列の数 (この場合は 6) にサイズ変更します
  3. 最初の行を動的に与える"=SUM(R[-" & rng1.Rows.Count & "]C:R[-1]C)"フォーラムに入りますrng1.Rows.Count

コード

Sub GetRange()
Dim rng1 As Range
Set rng1 = Range([a1], Cells(Rows.Count, "F").End(xlUp))
Cells(rng1.Cells(1).Row + rng1.Rows.Count, 1).Resize(1, rng1.Columns.Count).Value = "=SUM(R[-" & rng1.Rows.Count & "]C:R[-1]C)"
End Sub
于 2013-03-02T06:48:02.713 に答える
0

常にデータがあることを保証できる場合はcolumn A、最後の行を見つけるために次のことができます。

Option Explicit

Sub addSums()

Dim lstRow As Integer
With Excel.ThisWorkbook.Sheets("Sheet1")

    lstRow = .Cells(.Rows.Count, 1).End(Excel.xlUp).Row

    Dim j As Integer
    For j = 1 To .Cells(1, .Columns.Count).End(Excel.xlToLeft).Column
        .Cells(lstRow + 1, j) = "=SUM(R[-" & lstRow - 1 & "]C:R[-1]C)"
        .Cells(lstRow + 1, j).Font.Bold = True
    Next j

End With

End Sub

次の場合は問題なく動作するようです。

ここに画像の説明を入力

于 2013-03-02T10:00:43.727 に答える
-1

ソース データが外部ソースから取得されている場合、適切なメカニズムは次のとおりです。

  • 入力テーブルの周囲に名前付きデータ範囲を作成します。
  • 更新時に自動的にサイズ変更するように inut テーブルを設定します。と
  • 次に、関数で名前付きデータ範囲を使用します。
于 2013-03-02T06:33:54.253 に答える