पात्रों आप एक VBA समारोह में स्ट्रिंग में उपयोग कर सकते हैं की अधिकतम संख्या 255 है मैं इस समारोहएक वीबीए समारोह में अधिकतम स्ट्रिंग आकार के आसपास हो रही है?
Var1= 1
Var2= 2
.
.
.
Var256 =256
RunMacros= "'Tims_pet_Robot """ & Var1 & """ , """ & Var2 & """ , """ ... """ & Var256 """ '"
Runat=TimeValue("15:00:00")
Application.OnTime EarliestTime:=Runat, Procedure:=RunMacros & RunMacros2 ', schedule:=True
यह एक निश्चित समय पर एक प्रक्रिया चलाता है और इसे करने के लिए चर का एक गुच्छा गुजरता चलाने के लिए कोशिश कर रहा हूँ है । लेकिन स्ट्रिंग बहुत लंबी है।
अद्यतन: अफसोस की बात है कि मुझे यकीन है कि यह घड़ी खिड़की नहीं है। इसके अलावा, यह वास्तव में एक स्ट्रिंग का अधिकतम आकार नहीं है जिसके साथ मैं काम कर रहा हूं। यह का अधिकतम आकार VBA फ़ंक्शन में एक स्ट्रिंग है।
उदाहरण के लिए यह फ़ंक्शन काम करता है।
Sub test()
Dim RunAt As Date
Dim RunWhat As String
RunAt = Now + 0.00001
RunWhat = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 'that makes 254 'a''s
Application.OnTime EarliestTime:=RunAt, Procedure:="'" & RunWhat & " 12'"
End Sub
Sub aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(m As Integer)
MsgBox ("it works!" & m)
End Sub
लेकिन अगर आप को बदलने के लिए 12 123 के लिए यह टूट जाता है उदाहरण
Sub test2()
Dim RunAt As Date
Dim RunWhat As String
RunAt = Now + 0.00001
RunWhat = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" & _
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 'that makes 254 'a''s
Application.OnTime EarliestTime:=RunAt, Procedure:="'" & RunWhat & " 123'"
End Sub
Sub aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(m As Integer)
MsgBox ("it works!" & m)
End Sub
इस कोड काम नहीं करता, मैं बहुत यकीन है कि यह है, क्योंकि एक VBA समारोह में 255 से अधिक के साथ एक स्ट्रिंग को संभाल नहीं कर सकते हैं वर्ण। भले ही आप Excel में हों और फ़ंक्शन को कॉल करें और इसे एक स्ट्रिंग दें कि 255 वर्ण यह काम नहीं करते हैं।
सेल ए 1 = vlookup ("वास्तव में लंबी स्ट्रिंग", ए 1: जेड 10, 1) में आज़माएं और फिर उस सीमा में वास्तव में लंबी स्ट्रिंग डालें। Vlookup असफल हो जाएगा (इसे खोजने में विफल नहीं है, लेकिन आप वास्तव में ऐसा करने में सक्षम नहीं होंगे)
मुझे भी पता है कि उप नाम की अधिकतम लंबाई है, मैं बस इसके अंतर्गत हूं। क्षमा करें कि यह बहुत बदसूरत लग रहा है।
अद्यतन 2: इसलिए मैंने चर को एक शीट पर प्रिंट करना समाप्त कर दिया और शीट से उन्हें पढ़ने के लिए ऑनटाइम द्वारा फ़ंक्शन को प्राप्त किया। :(
[जोएल स्पॉल्स्की से] (http://www.joelonsoftware.com/articles/fog0000000319.html) (जिसने प्रारंभिक एक्सेल विकास में से अधिकांश का नेतृत्व किया): "एक्सेल आंतरिक रूप से पास्कल स्ट्रिंग का उपयोग करता है, यही कारण है कि कई जगहों पर तार एक्सेल 255 बाइट तक सीमित है, और यह भी एक कारण है कि एक्सेल तेज तेज है। " यह शायद आपके द्वारा उल्लिखित वीएलूकअप मुद्दे पर लागू होता है, हालांकि जैसा कि अन्य ने कहा है, वीबीए की ऐसी कोई सीमा नहीं है। – mwolfe02
आप एक 'स्ट्रिंग (number_of_repeats, char_to_repeat) का उपयोग कर सकते' 'बजाय aaaaaaaaaaaaaaaaaaaaaaaaaaa की मक्खी पर एक स्ट्रिंग बनाने के लिए ...' –