में गतिशील रूप से बनाए गए उपयोगकर्ता फॉर्म पर नियंत्रण के लिए ईवेंट हैंडलर को असाइन करें। मुझे इंटरनेट पर कई संसाधन मिले हैं जो लगभग करते हैं जो मैं करना चाहता हूं, लेकिन काफी नहीं। मेरे पास नामित रेंज "डेलिस्ट" है। दिन में प्रत्येक दिन के लिए, मैं उपयोगकर्ता फॉर्म पर एक बटन बनाना चाहता हूं जो उस दिन मैक्रो चलाएगा। मैं add the buttons dynamically करने में सक्षम हूँ, लेकिन पता है कि daycell.text नामांकित श्रेणी से, बटन के लिए, ईवेंट हैंडलर के लिए, मैक्रो को पारित करने के लिए न: एस यहाँ कोड मैं उपयोगकर्ता प्रपत्र बनाने के लिए:वीबीए
Sub addLabel()
ReadingsLauncher.Show vbModeless
Dim theLabel As Object
Dim labelCounter As Long
Dim daycell As Range
Dim btn As CommandButton
Dim btnCaption As String
For Each daycell In Range("daylist")
btnCaption = daycell.Text
Set theLabel = ReadingsLauncher.Controls.Add("Forms.Label.1", btnCaption, True)
With theLabel
.Caption = btnCaption
.Left = 10
.Width = 50
.Top = 20 * labelCounter
End With
Set btn = ReadingsLauncher.Controls.Add("Forms.CommandButton.1", "runButton", True)
With btn
.Caption = "Run Macro for " & btnCaption
.Left = 80
.Width = 80
.Top = 20 * labelCounter
' .OnAction = "btnPressed"
End With
labelCounter = labelCounter + 1
Next daycell
End Sub
ऊपर समस्या के समाधान मिलता है मैं वर्तमान में दिन वे चलाने के लिए (जैसे Day1) और मैक्रो को यह पारित चाहते टाइप करने के लिए संकेत और यह काम करता करने के लिए:
Sub B45runJoinTransactionAndFMMS()
loadDayNumber = InputBox("Please type the day you would like to load:", Title:="Enter Day", Default:="Day1")
Call JoinTransactionAndFMMS(loadDayNumber)
End Sub
Sub JoinTransactionAndFMMS(loadDayNumber As String)
xDayNumber = loadDayNumber
Sheets(xDayNumber).Activate
-Do stuff
End Sub
मेरी runButtons से प्रत्येक के लिए
इसलिए, यह daycell.text को प्रदर्शित करने की आवश्यकता है, और एक मैक्रो चलाएं जो वर्कशीट का चयन करने के लिए वर्कशीट का चयन करने के लिए पैरामीटर के समान टेक्स्ट का उपयोग करता है।
कोई भी मदद अद्भुत होगी। मैंने प्रतिक्रियाओं को देखा जो मैक्रोज़ को संभालने के लिए गतिशील रूप से वीबीए कोड लिखते हैं, लेकिन मेरा मानना है कि वहां कुछ होना चाहिए, इसे पास करने वाले पैरामीटर के माध्यम से थोड़ा और सुंदर ढंग से किया जा सकता है, बस यह सुनिश्चित न करें कि कैसे। अग्रिम में बहुत धन्यवाद!
[इस] (http://www.access-programmers.co.uk/forums/archive/index.php/t-88887.html) आप जो चाहते हैं उसके करीब दिखता है। ओटीओएच क्यों एक combobox नहीं बना है जो 'daylist' से पॉप्युलेट करता है और एक कमांड बटन जो चयनित मान पढ़ सकता है? –
मुझे लगता है कि मुझे उस विकल्प के लिए जाना पड़ सकता है। चूंकि मैक्रो का उपयोग स्क्रीनिंग और डेटा अपलोड करने के लिए किया जाता है, इसलिए मैं उम्मीद कर रहा था कि मैं एक छोटी लॉन्च स्क्रीन तैयार कर पाऊंगा जो पॉप्युलेट करेगा कि प्रत्येक तारीख के लिए एक लाइन होगी और रिकॉर्ड # # त्रुटियों, # त्रुटियों आदि दिखाएगी उनमें से प्रत्येक के लिए बटन बस थोड़ा और उपयोगकर्ता के अनुकूल बना देगा। हालांकि, जब तक कि मुझे एक आसान समाधान नहीं मिल रहा है, मुझे लगता है कि आपका सुझाव विजेता होगा। – BiGXERO
एक और विचार ... शायद आप एक विशेष वर्कशीट में संबंधित जानकारी (दिन, # रिकॉर्ड, # त्रुटियां इत्यादि) की एक तालिका बना सकते हैं और वहां पर क्लिक ईवेंट पर कब्जा कर सकते हैं। –