با سلام
یه جدولی دارم که یکی از ستون هاش تاریخ و یکی دیگه ش مبلغ هست (البته چند ستون دیگه هم داره که کاریش ندارم)
من میخوام توی ستون بعد از مبلغ یه ستون دیگه به نام جمع مبالغ روزانه رو داشته باشم
فرض کنید این جدول هست:
1394/04/01 500.000
1394/04/01 250.000
1394/04/01 750.000 1.500.000
1394/04/02 420.000 420.000
1394/04/03 100.000
1394/04/03 220.000 320.000

اون ستون سوم رو هر جوی توی خود اکسل فکر کردم نتونستم پیاده سازی کنم برا همین رفتم سراغ VBA(ستون اول و دوم ر وارد میکنم میخوام ستون سوم رو محاسبه کنه)
کد زیر رو نوشتم و توی SheetChange قرار دادم ولی مشکل داره:
کد PHP:
Private Sub Workbook_SheetChange(ByVal Sh As ObjectByVal Target As Range)

    
Dim i As Integer
    Dim j 
As Integer
    Dim m 
As Integer
    Dim n 
As Integer
    Dim RowNumber 
As Integer
    
    
'RowNumber = ActiveSheet.Range("A65536").End(xlUp).Row
      
        '
For 2 To RowNumber
        
For 2 To 50
        j 
1
        
If Cells(i2).Value <> Cells(j2).Value Then
        m 
i
        n 
1
        
Do While Cells(m2).Value Cells(n2).Value
        Cells
(i9).Value Cells(i9).Value Cells(m8).Value
        m 
1
        n 
1
        Loop
        End 
If
        
Next i

End Sub 
اول اینکه نمیدونم چرا موقع اجرا به خط RowNumber = ActiveSheet.Range("A65536").End(xlUp).Row ایراد میگرفت! دلیلش چی هست؟ همین کد رو توی فایل دیگه امتحان کردم مشکلی نداشتم ایا با بقیه قسمت ها همخونی نداره؟
خلاصه دیدم گیر میده غیر فعالش کردم دستور for رو هم به جای i = 2 To RowNumber موقتا i = 2 To 50 گذاشتم کد اجرا بشه ببینم چی میشه
اما بعد از اجرای این کد میافته توی بی نهایت و دائم داره حساب میکنه
مشکل چی هست؟ چطور میشه حلش کرد؟
من خودم فکر میکنم چون خود ستون سوم دچار تغییر میشه دوباره حساب میکنه و برا همین هیچ وقت تموم نمیشه وتنها چیزی که به ذهنم رسیده بود این که رنج تغییرات رو محدود کنم مثلا بگم اگه تغییرا توی فلان رنج بود کد اجرا بشه اما این رو بلد نیستم پیاده سازی کنم
ضمنا فکر کنم کد یه مشکل دیگه هم داره و باید قبل از حلقه Do While باید Cells(i, 9).Value خالی باشه اما اینجوری نوشتم کار نکرد:
Cells(i, 9).Value =""
ممنون میشم راهنمایی کنید
با تشکر
اخطار: این یک موضوع قدیمی است
به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.