سؤال

لدي الرمز التالي

 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 موجودًا في ورقة/كتاب مختلف تم تحديثه لاستخدام التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top