سلول تجمعی (انباشته)

فهرست

اغلب اوقات، زمانی پیش می‌آید که باید چندین مقدار را که به‌طور متوالی در یک سلول وارد می‌شوند، جمع‌بندی (انباشت) کنیم:

آن ها اگر مثلاً در سلول A1 عدد 5 را وارد کنید، عدد 1 باید در B15 ظاهر شود. اگر سپس عدد 1 را در A7 وارد کنید، در سلول B1 عدد 22 ظاهر می شود و غیره. به طور کلی، چیزی که حسابداران (و نه تنها آنها) یک کل تجمعی می نامند.

شما می توانید با استفاده از یک ماکرو ساده، چنین ذخیره سازی سلولی را پیاده سازی کنید. روی برگه برگه ای که سلول های A1 و B1 در آن قرار دارند کلیک راست کرده و از منوی زمینه انتخاب کنید متن منبع (کد منبع). در پنجره ویرایشگر ویژوال بیسیک که باز می شود، کد ماکرو ساده را کپی و جایگذاری کنید:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) با Target If.Address(False, False) = "A1" سپس اگر IsNumeric(.Value) سپس Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = پایان واقعی اگر پایان اگر پایان با پایان فرعی  

آدرس سلول های A1 و A2 را البته می توان با آدرس خود جایگزین کرد.

اگر نیاز به ردیابی ورود داده‌ها دارید و نه سلول‌های جداگانه، بلکه کل محدوده‌ها را خلاصه کنید، ماکرو باید کمی تغییر کند:

Worksheet_Change فرعی خصوصی (ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Is Nothing then If IsNumeric(Target.Value) سپس Application.EnableEvents = False Target.Offset(0) .Value = Target.Offset(1, 0).Value + Target.Value Application.EnableEvents = پایان واقعی If End If End Sub  

فرض بر این است که داده ها در سلول های محدوده A1:A10 وارد شده و اعداد وارد شده در ستون مجاور در سمت راست خلاصه می شوند. اگر در مورد شما مجاور نیست، شیفت به راست را در عملگر Offset افزایش دهید - عدد 1 را با یک عدد بزرگتر جایگزین کنید.

  • ماکروها چیست، کد ماکرو را کجا در VBA وارد کنیم، چگونه از آنها استفاده کنیم؟

پاسخ دهید