2012-03-21 8 views
6

जब मैंने संख्यात्मक मान वाले एक श्रेणी का चयन किया है, तो मैं वीबीए के माध्यम से, प्रत्येक कॉलम के नीचे =SUM फॉर्मूला इनपुट करना चाहता हूं, यानी अंतिम चयनित पंक्ति के बाद पंक्ति पर। प्रत्येक कॉलम के लिए इसे पूरे चयन के संबंधित कॉलम में सभी मानों को जोड़ना चाहिए।वीबीए का उपयोग कर चयनित श्रेणी के लिए कॉलम कैसे योग करें?

मैं यह कैसे कर सकता हूं?

अभी, मैक्रो रिकॉर्डर द्वारा दिए गए कोड का उपयोग कर रहा हूं: ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"। समस्या यह है कि जब मेरी सीमा 10 पंक्तियों से बड़ी हो जाती है तो यह नीचे 10 के ऊपर पंक्तियों को ध्यान में रखेगी।

enter image description here

उत्तर

6

यह काम करता है:

Sub MakeSums() 
    Dim source As Range 
    Dim iCol As Long 
    Dim nCol As Long 
    Dim nRow As Long 

    Set source = Selection 

    nCol = source.Columns.Count 
    nRow = source.Rows.Count 
    For iCol = 1 To nCol 
     With source.Columns(iCol).Rows(nRow).Offset(1, 0) 
      .FormulaR1C1 = "=SUM(R[-" & nRow & "]C:R[-1]C)" 
      .Font.Bold = True 
     End With 
    Next iCol 

End Sub 

उदाहरण:

enter image description here

1

तुम भी VBA के बिना कुछ इस तरह कर सकता है:

=SUM(OFFSET(INDIRECT(CELL("address")),1-ROW(),0,ROW()-1,1)) 

यह सेल के ऊपर सभी कोशिकाओं को समेकित करेगा जिसमें सूत्र मौजूद है।

8

यहां एक साधारण गैर-वीबीए दृष्टिकोण है।

कोशिकाओं जहां योग चाहते हैं का चयन करें और ऑल्ट प्रेस - =

स्नैपशॉट

enter image description here

और यहाँ एक पंक्ति VBA कोड वही चीज़ है।

Sub AutoSum() 
    '~~> After you select your range 
    Application.CommandBars.ExecuteMso ("AutoSum") 
End Sub 
संबंधित मुद्दे