簡體   English   中英

Excel-VBA命名范圍行總和

[英]Excel-VBA Named range row sum

我有以下代碼

 For i = 1 To DepRng.Rows.Count
    For j = 1 To DepRng.Columns.Count
         DepRng.Cells(i, j) = Application.Sum(KidsRng.Row(i)) //Does not work
    Next j
 Next i

盡管我知道是錯的,但我不知道如何將其存儲在DepRng.Cells(i, j)中,將整個KidsRng.Row[i]的總數求和。

以下代碼可以正常工作。

也許您應該將其與您的相比較:

Sub a()

Dim DepRng As Range
Dim kidsrng As Range
Set DepRng = Range("B1:B2")
Set kidsrng = Range("C1:F2")

 For i = 1 To DepRng.Rows.Count
      DepRng.Cells(i, 1) = Application.Sum(kidsrng.Rows(i))
 Next i

End Sub

只需用數字填充范圍C1:F2,每行的總和將在執行宏后顯示在B1:B2中。

排序,謝謝大家的幫助

   DepRng.Cells(i, j) = Application.Sum(KidsRng.Rows(i)) //just needed to add the "s" in rows

也許有比這更好的方法,但是這是我的解決方案,盡管它取決於內部Excel公式引擎,但對於您正在執行的操作來說可能就足夠了...它確定了KidsRng.Row(i)的完整地址,並將其輸入= SUM()公式字符串中,並由Application.Evaluate進行評估。

For i = 1 To DepRng.Rows.Count
    For j = 1 To DepRng.Columns.Count

        DepRng.Cells(i, j).Value = Application.Evaluate("=SUM(" & KidsRng.Row(i).Address(True, True, xlA1, True) & ")")

    Next j
 Next i

如果在更新為使用Application的另一張圖紙/書中存在kidsrng,則對其進行了更新,以進行工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM