2012-03-28 16 views
5

के रूप में सेट करना मैं वीबीए कोडिंग में नया हूं। आइए कहें कि मैं मूल्य के लिए शीट 3.सेल (23, 4) से मूल्य पुनर्प्राप्त कर रहा हूं, क्या वीबीए कोड में कोई तरीका है जो मुझे इसे एक चर के रूप में सेट करने देता है?एक शीट और सेल को परिवर्तनीय

उदाहरण के लिए, मैंने इंटरफ़ेस बदल दिया है और मूल्य को Sheet4.Cell (20,1) पर रहते हैं, हर जगह मेरे कोड में शीट 3.सेल (23, 4) को शीट 4 में बदलना होगा। सेल (20, 1)। मुझे लगता है कि इस तरह की स्थिति के लिए वीबीए कोडिंग के लिए कोई सर्वोत्तम अभ्यास है?

उत्तर

6

हां। उस के लिए सुनिश्चित करें कि आप कार्यपत्रक

उदाहरण के लिए

पिछला कोड

Sub Sample() 
    Dim ws As Worksheet 

    Set ws = Sheets("Sheet3") 

    Debug.Print ws.Cells(23, 4).Value 
End Sub 

नए कोड

Sub Sample() 
    Dim ws As Worksheet 

    Set ws = Sheets("Sheet4") 

    Debug.Print ws.Cells(23, 4).Value 
End Sub 
+2

अरे सिड, मैं आपका कोड नहीं समझता। आप स्मृति में एक अनावश्यक चर क्यों स्थापित कर रहे हैं? शीट कोडनाम मूल रूप से एक चर का उपयोग करने की तरह हैं यदि वर्कशीट नाम कोडनाम बदलता है। – Reafidy

+0

ओह हाँ, मैंने इसे तुरंत प्रश्न से कॉपी कर लिया था लेकिन इसे संशोधित करना भूल गया ... अब इसे संशोधित करना। अच्छा पकड़ा :) –

5

हाँ, एक सीमा वस्तु के रूप में सेल की स्थापना की घोषणा कर एक समय और फिर अपने कोड में उस RANGE ऑब्जेक्ट का उपयोग करें:

Sub RangeExample() 
Dim MyRNG As Range 

Set MyRNG = Sheets("Sheet1").Cells(23, 4) 

Debug.Print MyRNG.Value 

End Sub 

वैकल्पिक रूप से आप उस सेल के मान को स्मृति में संग्रहीत कर सकते हैं और वास्तविक मान को संदर्भित कर सकते हैं, अगर आपको वास्तव में इसकी आवश्यकता है। यह चर लंबा या डबल या सिंगल हो सकता है यदि संख्यात्मक, या स्ट्रिंग:

Sub ValueExample() 
Dim MyVal As String 

MyVal = Sheets("Sheet1").Cells(23, 4).Value 

Debug.Print MyVal 

End Sub 
संबंधित मुद्दे