लूप का उपयोग करके प्रत्येक कार्यपत्रक पर एक ही सेल में एक सूत्र डालें


2

VBA के लूप फ़ंक्शन का उपयोग करते हुए, मैं अपनी कार्यपुस्तिका में प्रत्येक कार्यपत्रक पर एक ही सेल में एक ही सूत्र इनपुट करना चाहता हूं।

मैंने निम्नलिखित कोड की कोशिश की है, लेकिन यह सभी वर्कशीट के माध्यम से लूप नहीं करता है। यह केवल उसी को अपडेट करता है जो डिफ़ॉल्ट रूप से चुना जाना है:

Sub insertformula()

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    Range("D7").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"

Next

End Sub

मुझे क्या याद आ रहा है कि इस कोड को सभी वर्कशीट के माध्यम से लूपिंग से रखा जा रहा है?

धन्यवाद,


सबको शुक्रीया। मैं इस बड़े समय से कैसे निपटा जा रहा था! मैं सभी जवाबों की सराहना करता हूं
रेंकजाम

इसके अलावा, अगर यह संभव था, तो मैं दोनों जवाब ode2k और गैरी स्टूडेंट की जाँच से देता, अगर वह मुझे जाने देता। मैंने ode2k के उत्तर को स्वीकार करना चुना क्योंकि यह उत्तर था जिसका उपयोग मैंने अंत में किया था क्योंकि इसने मुझे VBA को एक साथ बाईपास करने की अनुमति दी थी। @ गैरी स्टूडेंट और ode2k दोनों को धन्यवाद।
रेंकजाम

जवाबों:


4

ऐसा करने के लिए आपको VBA या लूप का उपयोग करने की आवश्यकता नहीं है। यदि आप अपनी प्राथमिक वर्कशीट में हैं, तो शीट टैब को एक-एक करके तब तक नियंत्रित करें, जब तक उनमें से प्रत्येक हाइलाइट न हो जाए।

यहाँ छवि विवरण दर्ज करें

जब आप जिन सभी शीटों को कॉपी करने का फॉर्मूला हाइलाइट करना चाहते हैं, आप अपना फॉर्मूला सेल में टाइप कर सकते हैं और यह स्वचालित रूप से संबंधित वर्कशीट पर सटीक सेल में कॉपी हो जाएगा। जब आप उस के साथ किया जाता है, तो दूसरों को अलग करने के लिए एक व्यक्तिगत शीट पर क्लिक करना सुनिश्चित करें।


2

आपको लूप की आवश्यकता नहीं है । यह एक ही समय में सभी पत्रक पर सूत्र लागू करेगा:

Sub hfdjs()
    Sheets.Select
    Range("D7").Activate
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"
End Sub

संपादित करें # 1:

मान लें कि हमारे पास डिफ़ॉल्ट नामों के साथ 5 कार्यपत्रक हैं और हम पहले दो पत्रक को छोड़कर सभी में एक सूत्र को जाम करना चाहते हैं।

Sub FormulaBlaster()
    Sheets(Array("Sheet3", "Sheet4", "Sheet5")).Select
    Range("B9").Select
    Selection.Formula = "=1+2"
End Sub

लगता है, मैं इसे उखाड़ फेंक रहा था। बहुत अच्छा काम किया! क्या पहले दो वर्कशीट को बाहर करने के लिए इसे संशोधित करने का कोई तरीका है? मैं काम करने के लिए एक if कमांड का उपयोग करने के बारे में सोच रहा था, लेकिन अभी तक मेरे लिए काम नहीं किया है। मदद के लिए धन्यवाद
rencjam

@rencjam आप Selectशीट्स की एक सरणी होगी जिसमें पहले दो शीट्स शामिल नहीं हैं।
स्टूडेंट

@rencjam मेरी EDIT # 1
गैरी के छात्र

1

आप निर्दिष्ट नहीं कर रहे हैं कि आप किस श्रेणी का उपयोग करना चाहते हैं। आप पहले इसे चुने बिना सीमा के लिए सूत्र भी निर्दिष्ट कर सकते हैं

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    ws.Range("D7").FormulaR1C1 = "=VLOOKUP(R[-5]C[-1],'SHEET ALL WILL REFERENCE'!C[-2]:C[-1],2,FALSE)"

Next

मैंने आपका संशोधित कोड आज़मा लिया है और यह अभी भी अगली शीट पर आगे नहीं बढ़ता है। इसके अलावा, जब आप कहते हैं कि मैं निर्दिष्ट नहीं कर रहा हूं कि मैं किस रेंज का उपयोग करना चाहता हूं, तो क्या आप का अर्थ है "ws.range (" D7 ")?
rencjam
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.