मैं एक्सेल वीबीई में वीबीए का उपयोग कर रहा हूं, लेकिन सी # या वीबी ठीक है। अवधारणा को भाषाओं में सच रखना चाहिए।एक्सेल रेंज ऑब्जेक्ट के पीछे चलने का सबसे तेज़ तरीका क्या है?
5
A
उत्तर
3
सुनिश्चित नहीं है कि आपका क्या मतलब है। आप ऊपर से नीचे की बजाय, नीचे से ऊपर तक जाना चाहते हैं?
यह करना चाहिए:
Dim myrange As Range
Set myrange = Range("B3:E10")
Dim row As Integer, col As Integer
For row = myrange.Rows.Count To 1 Step -1
For col = myrange.Columns.Count To 1 Step -1
Debug.Print myrange(row, col).Value
Next col
Next row
+0
अच्छा समाधान ब्रैडसी। +1 – LeppyR64
1
आप एक से अधिक कुछ कोशिकाओं की सीमाओं के साथ काम कर रहे हैं और, सेल संशोधित कर हमेशा एक सरणी में मानों खींच रहा है और उस के साथ काम कर रहा पर विचार की जरूरत नहीं है : कोड और वर्कशीट के बीच बातचीत अपेक्षाकृत (बहुत) महंगा है। यदि आप एक .NET असेंबली से काम कर रहे हैं, तो यह डबल (शायद ट्रिपल, शायद अधिक) हो जाता है क्योंकि राउंड ट्रिप में कई और कदम शामिल होते हैं।
VBA में, कुछ इस तरह:
Dim vals As Variant
Dim row As Long, col As Long
vals = Range("A1:Z100") ' or whatever
For col = UBound(vals,2) To LBound(vals,2) Step -1
For row = UBound(vals) To LBound(vals) Step -1
DoSomethingInterestingWith vals(row, col)
Next
Next
अरे GollyJer, मैं इस करने का उद्देश्य सिर्फ उत्सुक था। – LeppyR64
यह संगत डेटा की मौजूदा सूची के बीच कई पंक्तियों को डालने के लिए था। – GollyJer