एक्सेल टेबल में जेनेरिक बटन नियंत्रण की पहचान कैसे करें?


1

मैंने एक एक्सेल शीट बनाई है जिसका नाम टेबल है। पहली पंक्ति की बाईं सीमा पर मैंने "+" लेबल वाला एक बटन नियंत्रण जोड़ा है। यह बटन एक मैक्रो चलाता है जो तालिका के तल पर हमेशा एक नई अंतिम पंक्ति जोड़ता है। किसी भी नई पंक्ति में इस बटन की एक प्रति भी होती है (हालाँकि कॉलम A में स्थित बटन नामांकित तालिका के क्षेत्र में नहीं है)। वैसे भी, ये सभी जेनेरिक बटन बिलकुल एक जैसे हैं।

अब, मैं उसी तरह एक और बटन ("-") जोड़ना चाहता हूं, लेकिन इस बार मैं उस बटन की लाइन को रिमूव करना चाहूंगा, जिस बटन पर मैंने क्लिक किया है। ऐसा करने के लिए मुझे उस सटीक बटन को पहचानना होगा जिसे क्लिक किया गया था और उस पंक्ति का पता करें जहां इसे रखा गया है।

यह इस तरह दिख रहा है:

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

क्या यह भी संभव है और कैसे?

संपादित करें : टिप्पणियों को संबोधित करने के लिए:

अंत में एक नई पंक्ति जोड़ने के लिए कोड:

ActiveSheet.ListObjects("TimeSheetTable").Resize Range("$B$" & HEADERROW & ":$H$" & iNewRow)

'Duplicate the previous row
Rows(iNewRow- 1).Select
Application.CutCopyMode = False
Selection.Copy
Rows(iNewRow).Select
ActiveSheet.Paste
Application.CutCopyMode = False

1
कृपया उस कोड को पोस्ट करें जो आपके पास पहले से है।
मेत जुहेसज

यदि आप निकालने के लिए बटन पर '-' चिह्न के बारे में बात कर रहे हैं, तो यह कमांड बटन के कैप्शन प्रॉपर्टी का उपयोग करके बदल या हटा सकता है।
राजेश एस

मैं वास्तव में आश्चर्यचकित हूं कि, टेबल पर पंक्ति जोड़ने के बाद आप बटन के लिए क्या कॉपी कर रहे हैं?
राजेश एस

@RajeshS बटन का कैप्शन यहाँ मुद्दा नहीं है। इसकी कार्यक्षमता के बारे में सब।
मागियर

जवाबों:


2

मैं आपको निम्नलिखित VBA कोड का उपयोग करने का सुझाव देना चाहूंगा। आपको उस कमांड बटन के साथ कॉल करने की आवश्यकता है जिसे आप पहचानते हैं कि क्लिक किया गया था।

Sub WhichOneClicked()

  Dim b As Object, iBtnRow As Integer
  Set b = ActiveSheet.Buttons(Application.Caller)

  With b.TopLeftCell
    iBtnRow= .Row
  End With

 MsgBox "Row Number " & iBtnRow

End Sub

आशा है कि यह आपकी मदद करेगा।


सही समाधान, मैंने इसे ROW (जो मुझे इस मामले में चाहिए) प्राप्त करने के लिए संशोधित किया।
मागियर

आपसे यहाँ अच्छा लगा ,,, पूछते रहिये।
राजेश एस।

0

मेरे पास एक और समाधान है जो बहुत आसान है और आगे की ओर क्लिक बटन को पहचानता है। इसका दायरा सीमित है लेकिन सभी के लिए सरल और सरल है।

Private Sub CommandButton1_Click()

Dim ButtonName
ButtonName = "CommandButton1"
MsgBox "You have clicked the " & ButtonName & " just now button."

End Sub

NB: इस कोड के साथ अन्य VBA कोड शामिल किए जा सकते हैं या इसे दूसरे कोड के भीतर बुलाया जा सकता है।


2
इसके Subलिए प्रत्येक बटन के लिए खुद को बनाना होगा जो इस मामले में संभव नहीं लगता क्योंकि बटन की संख्या गतिशील है।
माटे जुहेज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.