2011-02-10 15 views
6

जैसा कि मैंने पहले से ही पता लगाया है, उनमें से कम से कम छह हैं: [email protected]#$%&वीबीए में परिवर्तनीय नाम के बाद संभावित प्रत्यय क्या हैं?

 
Dim A!, [email protected], C#, D$, E%, F& 
Debug.Print "A! - " & TypeName(A) 
Debug.Print "[email protected] - " & TypeName(B) 
Debug.Print "C# - " & TypeName(C) 
Debug.Print "D$ - " & TypeName(D) 
Debug.Print "E% - " & TypeName(E) 
Debug.Print "F& - " & TypeName(F) 

आउटपुट

 
A! - Single 
[email protected] - Currency 
C# - Double 
D$ - String 
E% - Integer 
F& - Long 

इस वाक्य चीनी पर प्रलेखन कहां है:

यहाँ स्निप है?

अन्य संभावित प्रत्यय क्या हैं?

क्या तारीख के लिए कोई है?

+9

भागो! भाग जाओ! कुछ और भागो! ये भयानक, भयानक बचे हुए हैं जिनका उपयोग नहीं किया जाना चाहिए, अवधि। सबसे नज़दीक मैं कभी आया हूं कि मैं '$', – RolandTumble

+0

@ रोलैंड के बिना संस्करणों द्वारा लौटाए गए संस्करण के बजाए तारों की वापसी को मजबूर करने के लिए 'दाएं $', '$ $', 'मध्य $' और 'ट्रिम $' का उपयोग करता हूं। , माना! मैं उन्हें बिल्कुल एक उद्देश्य के लिए उपयोग करता हूं: http: // stackoverflow।कॉम/प्रश्न/3047239/एक-सार्वभौमिक-तरीके-से-एक-अच्छा-पाठ-प्रतिनिधित्व-का-एक-चर-इन-वीबी/3047931 # 3047931 – jtolle

+0

रोलैंड के साथ सहमत है, लेकिन फिर भी +1 प्रश्न और शब्द _syntax sugar_ के लिए यह आपको एक चुंबन देने वाला कोड है। (हाँ, मैं अकेला हूँ।) – ray

उत्तर

5

एक पूर्ण (?) सूची http://support.microsoft.com/kb/110264 परिवर्तनीय और फ़ंक्शन नाम उपसर्ग के अंतर्गत है। जैसा कि रेमो ने कहा - उन्हें अनुशंसित नहीं किया जाता है (लेख कहता है कि उपयोग "निराश" है)। मेरा मानना ​​है कि आपने उन्हें अपनी सूची में शामिल किया है। तिथि तकनीकी रूप से एक संस्करण है (एक फ़्लोटिंग पॉइंट के रूप में संग्रहीत) ताकि उसके लिए कोई शॉर्टकट न हो।

4

ये लंबे समय से बहिष्कृत हैं और केवल पिछड़े संगतता AFAIK के लिए बने रहते हैं। आवश्यक प्रकार के रूप में अपने चर घोषित करें। आप टाइप करने के लिए चर को भी जोड़ सकते हैं।

+0

यह बहुत आसान है, आपको पता है :) । आईएमएचओ वीबी खुद ही एक बड़ी पिछड़ा संगतता है और किसी को भी इस पर कोई कार्यक्रम नहीं लिखना चाहिए, हालांकि, कठिन वास्तविकता में चीजें थोड़ा अलग हैं। क्या आप मेरे लिए कोई संदर्भ रखते हैं, इसलिए मैं इसे देख सकता हूं और निर्णय ले सकता हूं कि इसका उपयोग करना है या नहीं यह या नहीं? – archimed7592

+5

मैं वीबीए में दैनिक स्क्रिप्ट चीजें। 'VB.Net पर जाने के लिए अच्छा होना चाहिए, लेकिन यह एक तकनीकी कंपनी नहीं है और हम शायद कार्यालय के एक नए संस्करण में अपग्रेड नहीं करेंगे जब तक कि हमें पूरी तरह से नहीं करना पड़ेगा। (यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है। मुझे बस यह कहने जैसा लगा)। – PowerUser

+2

आप इसे वीबी 6 सूचना से प्राप्त कर सकते हैं http://www.thevbprogrammer.com/Ch02/02-02- डेटाटाइप नामकरणकोनवीएचटीएम। ध्यान दें कि सभी प्रकार उपलब्ध नहीं हैं, जो स्पष्टता के अलावा, इस नोटेशन से बचने का एक प्रमुख कारण होगा। सभी डेटा प्रकार इंटेलिजेंस और 'As' के उपयोग के साथ उपलब्ध हैं। – Fionnuala

3

ये प्रत्यय प्रकार संकेत हैं, और स्वीकृत उत्तर में लिंक पुराना है।

Dim someInteger% '% Equivalent to "As Integer" 
Dim someLong& '& Equivalent to "As Long" 
Dim [email protected] '@ Equivalent to "As Currency" 
Dim someSingle! '! Equivalent to "As Single" 
Dim someDouble# '# Equivalent to "As Double" 
Dim someString$ '$ Equivalent to "As String" 

Dim someLongLong^ '^ Equivalent to "As LongLong" in 64-bit VBA hosts 

तो तुम LongLong के लिए उन सब को था, ^ को छोड़कर, 64-बिट मेजबान अनुप्रयोगों के लिए VBA7 में पेश किया। वास्तव में माइक्रोसॉफ्ट ने एक नए प्रकार के संकेत के लिए एक नया प्रकार संकेत क्यों पेश किया, हालांकि मेरे बाहर है।

यह से वाक्य रचना चीनी हालांकि अधिक वाक्य रचना जहर है, और इस कमोडोर 64 बेसिक 2.0 fizzbuzz कोड में उदाहरण के लिए बुनियादी के पैतृक, dinosaurian संस्करणों से वापस सभी तरह तिथियाँ, पहले As खंड एक बात थी:

लाइन नंबर, Rem टिप्पणियां और स्पष्ट Let मूल्य assigments भी थे 1982 में एक बात उन्हें हर कीमत पर से बचें:
1000 REM INIT VARIABLES 
1010 LET FIZZ$ = "FIZZ" 
1011 LET BUZZ$ = "BUZZ" 
1020 LET FIZZ% = 3 
1021 LET BUZZ% = 5 
1030 LET MIN% = 1 
1031 LET MAX% = 15 
1100 PRINT FIZZ$ + ":" + STR$(FIZZ%) 
1101 PRINT BUZZ$ + ":" + STR$(BUZZ%) 
1102 PRINT FIZZ$ + BUZZ$ + ":" + STR$(FIZZ%*BUZZ%) 
1105 PRINT 

आप देख सकते हैं, प्रकार संकेत केवल पैलियो-कोड है कि VBA का समर्थन करता है नहीं कर रहे हैं।

शाब्दिक में, संकेत से अधिक स्पष्ट रूपांतरण पसंद करते हैं:

Debug.Print TypeName(32&) 'prints Long 
Debug.Print TypeName(CLng(32)) 'prints Long 

अपने आप से पूछें कि क्या आप नहीं कर सकते हैं , अपने आप को आप चाहे चाहिए पूछना। - अज्ञात

संबंधित मुद्दे