मैं प्रत्येक कक्ष E2: E30 और F2: F30 में चेक बॉक्स सम्मिलित करना चाहूंगा, जहां प्रत्येक पंक्ति में कॉलम E या स्तंभ F में से किसी एक बॉक्स को चेक किया जाना चाहिए।
=E2=1, G2 में: =E2=2, आदि
मैं प्रत्येक कक्ष E2: E30 और F2: F30 में चेक बॉक्स सम्मिलित करना चाहूंगा, जहां प्रत्येक पंक्ति में कॉलम E या स्तंभ F में से किसी एक बॉक्स को चेक किया जाना चाहिए।
=E2=1, G2 में: =E2=2, आदि
जवाबों:
आपके मामले में, विकल्प बटन का उपयोग करना निश्चित रूप से बेहतर / अधिक व्यावहारिक समाधान है। यदि आपको चेक बॉक्स के साथ एक विकल्प समूह का अनुकरण करने की आवश्यकता है, तो नीचे देखें
मैनुअल तरीका:
=$E$1सूत्र पट्टी में सरल टाइपिंग द्वारा ।यह लिंक सेल अब दबाए गए विकल्प बटन की संख्या को धारण करेगा, आपके मामले में यह 1, 2 या 3 हो सकता है। अब आप इसे किसी अन्य फ़ंक्शन के साथ जोड़ सकते हैं INDEX/OFFSET/CHOOSE।
वीबीए तरीका
निम्नलिखित दिनचर्या प्रत्येक कोशिका के बगल में एक विकल्प समूह रखेगी:
स्ट्रिंग के रूप में निजी कॉस्ट cStrPrefix = "o_"
डबल = 2 के रूप में निजी कॉस्ट cDblHor क्षैतिजSpacing
डबल = 40 के रूप में निजी कॉस्ट cDblLabelWidth
कार्यपत्रक के रूप में निजी mWS
स्ट्रिंग के रूप में निजी mStrAddr
रेंज के रूप में निजी mRngLink
निजी mVarLabels () वेरिएंट के रूप में
निजी mIntCount पूर्णांक के रूप में
सार्वजनिक उप सबडक्शनओनग्रुपसमूहइनरेंज (रेंज के रूप में रिंगलिंक, _
पूर्णांक के रूप में intNumberOfButtons, _
ParamArray varLabels () वेरिएंट के रूप में)
इंटेगर के रूप में मंद intOldCalcMode
अनुप्रयोग.स्क्रीनयूडेटिंग = गलत
intOldCalcMode = Application.Calacle
Application.Calacle = xlCalacleManual
'इनित चर
MWS = rngLinks.Worksheet सेट करें
mIntCount = intNumberOfButtons
mVarLabels = varLabels
RngLinks.Cells में प्रत्येक mRngLink के लिए
mStrAddr = mRngLink.Address
subDeleteOptionGroup
subPlaceOptionGroup
subPlaceOptionButtons
आगे
Application.Calacle = intOldCalcMode
Application.ScreenUpdating = True
अंत उप
निजी उप सबडिटऑप्शनऑग्रुप ()
डिम आई अस इंटेगर
त्रुटि फिर से शुरू पर
I = 1 के लिए mIntCount
mWS.OptionButtons (cStrPrefix & mStrAddr & "_" & i) .Dillill
आगे
mWS.GroupBoxes (cStrPrefix & mStrAddr) .डेली
अंत उप
निजी उप सबडक्शनओपरेशनसमूह ()
डिम objGroupBox GroupBox के रूप में
ObjGroupBox = mWS.GroupBoxes.Add (_) सेट करें
mRngLink.Offset (, 1) .Left, mRngLink.Top, _
(mIntCount + 2) * cDblHor क्षैतिजSpacing + _
mIntCount * cDblLabelWidth, _
mRngLink.Height)
ObjGroupBox के साथ
.Characters.Text = ""
.Name = cStrPrefix & mStrAddr
.Display3DShading = सच
के साथ समाप्त करना
अंत उप
निजी उप सबडक्शनऑक्शनबटन ()
डिम आई अस इंटेगर
मंद objOptionButton विकल्पबटन के रूप में
I = 1 के लिए mIntCount
ObjOptionButton = mWS.OptionButtons सेट करें। जोड़ें (_
mRngLink.Offset (, 1) .Left _
+ i * cDblHor क्षैतिजSpacing + (i - 1) * cDblLabelWidth, _
mRngLink.Top, cDblLabelWidth, mRngLink.Height)
ObjOptionButton के साथ
.चैक्टर्स। पाठ = mVarLabels (i - 1)
.Display3DShading = सच
.Name = cStrPrefix & mStrAddr & "_" & i
.लिंकडेल = mStrAddr
के साथ समाप्त करना
आगे
अंत उप
आप अपने विकल्प बटन को 'सबप्लसऑक्शनगर्गेन्सइंटरेंज शीट्स ("आपकीशीट") चलाकर रख सकते हैं। रेंज ("ई 2: ई 30"), 3, "लेबल 1", "लेबल 2", "लेबल 3"
पारस्परिक अनन्य स्थिति को प्राप्त करने के लिए, आपको प्रत्येक विकल्प बटन पर निम्न मैक्रो असाइन करना होगा:
सार्वजनिक उप सबचार्जचेकबॉक्स ()
चेक बॉक्स के रूप में मंद सी.बी.
मंद rngTarget रेंज के रूप में
इंटेगर के रूप में मंद इंट्रोल
सेट cb = ActiveSheet.CheckBoxes (Application.Caller)
RngTarget = ActiveSheet.Range (cb.LinkedCell) सेट करें
'अनचाहे रोकें
अगर rngTarget.Value = फिर गलत
rngTarget.Value = सच
उप से बाहर निकलें
अगर अंत
'पहले चयनित चेकबॉक्स को अचयनित करें
IntCol = 1 To 3 के लिए
अगर rngTarget.Column intCol तब
ActiveSheet.Cells (rngTarget.Row, intCol) ।Value = गलत
अगर अंत
अगला intCol
अंत उप