Excel-VBA اسمه Range Row Sum
-
25-09-2019 - |
سؤال
لدي الرمز التالي
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]
أي مساعدة؟
المحلول 2
فرز ، شكرا جميع على مساعدتك
DepRng.Cells(i, j) = Application.Sum(KidsRng.Rows(i)) //just needed to add the "s" in rows
نصائح أخرى
الرمز التالي يعمل بشكل جيد.
ربما يجب عليك مقارنتها مع لك:
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 عند تنفيذ الماكرو.
قد تكون هناك طريقة أفضل من هذا ، ولكن هذا هو الحل الذي يعتمد على محرك Excel Formula الداخلي ، فقد يكون ذلك كافيًا بما يكفي لما تفعله ... إنه يحدد العنوان الكامل لـ Kidsrng.Row (i) ، ويغذيها في سلسلة صيغة = SUM () وتقييمها بواسطة application.evalate.
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
تم تحديثه للعمل إذا كان Kidsrng موجودًا في ورقة/كتاب مختلف تم تحديثه لاستخدام التطبيق.
لا تنتمي إلى StackOverflow