2016-04-05 5 views
5

किसी भी पाठ मूल्य के साथ, मैं व्यक्तिगत रूप से प्रत्येक वर्ण को प्रारूपित कर सकता हूं और फिर Range.Characters() संग्रह पर पुनरावृत्ति करके उस स्वरूपण को किसी अन्य कक्ष में कॉपी कर सकता हूं।संख्यात्मक कोशिकाओं में क्यों नहीं है। कैरेक्टर() संपत्ति?

हालांकि, यदि सेल एक संख्या है (भले ही संख्याफॉर्मिंग इसे एक स्ट्रिंग जैसे दिनांकों के रूप में प्रदर्शित करता है) तो यह प्रॉपर्टी का खुलासा नहीं करता है और, वास्तव में, चुनिंदा रूप से अंक-दर-अंक स्वरूपित नहीं किया जा सकता है।

एक्सेल कैरेक्टर ऑब्जेक्ट्स का उपयोग करके तारों को क्यों प्रदर्शित करता है लेकिन संख्याओं पर नहीं, भले ही संख्या स्ट्रिंग के रूप में प्रदर्शित की जा रही हो?

+0

यदि संख्या टेक्स्ट के रूप में स्वरूपित है (i.e. * 'एक स्ट्रिंग के रूप में प्रदर्शित' *) तो आप अलग-अलग अक्षर/अंक प्रारूपित कर सकते हैं। यदि इसे किसी संख्या के रूप में स्वरूपित किया गया है तो 10 10 नहीं है, यह 0 ए है। – Jeeped

+0

@ जीपड मुझे लगता है कि पाठ को वर्णों की एक श्रृंखला के रूप में स्वरूपित किया जा सकता है। मैंने जो ** सोचा था ** यह था कि अक्षर था() ऑब्जेक्ट्स को प्रेजेंटेशन-लेयर के रूप में इस्तेमाल किया गया था (विशेष रूप से तारीखों के लिए लिखित तिथियों के रूप में प्रदर्शित दिनांकों के लिए)। किसी भी मूल्य के लिए, लेकिन स्पष्ट रूप से संख्याओं के लिए नहीं। मैं सिर्फ यह जानने की कोशिश कर रहा हूं कि ** वास्तव में ** क्या चल रहा है। – Kaz

+5

सच्चाई आपको डरा सकती है। आप नीली गोली ले सकते हैं और जादुई गुणों के साथ 'रेंज' ऑब्जेक्ट देख सकते हैं, या आप लाल गोली, कॉमऑफ को COM और "असली" एक्सेल ऑब्जेक्ट मॉडल के साथ ले सकते हैं, और देखें कि खरगोश छेद कितना गहरा हो जाता है। मुझे नीली गोली पसंद आई। –

उत्तर

1

आप इस के आसपास जाने के लिए चाहते हैं, आप ऐसा कर सकते हैं निम्नलिखित:

सेल A1 पुट सामने ' "" संकेत के साथ 123456' में। फिर

range("A1").Characters(1,3).Font.Bold = true 

यह केवल पहले तीन नंबर ले जाएगा, " '" संकेत को ध्यान में नहीं ले रही है लिखें। इस प्रकार, संख्या एक स्ट्रिंग के रूप में प्रदर्शित की जाती है, लेकिन आप अभी भी इसकी गणना कर सकते हैं उदा। ए 1 + 4 123460 देगा।

+0

मैं सुझाव की सराहना करता हूं, लेकिन मुझे समझने के लिए कामकाज में दिलचस्पी नहीं है ** क्यों ** वे भिन्न हैं और वास्तव में अंतर के कारण "हुड के नीचे" क्या हो रहा है। – Kaz

+0

विचार यह है कि सेल में हमेशा एक संख्या होती है, भले ही इसे टेक्स्ट की तरह दिखने के लिए स्वरूपित किया गया हो। वीबीए इस बात की परवाह नहीं करता कि यह इस मामले में एक्सेल में कैसा दिखता है - यह जानता है कि यह एक संख्या है और इस प्रकार यह रेंज नहीं हो सकती है। अभियंता। इसी कारण से आप VBA में संख्या के साथ शुरू होने वाले चर का नाम नहीं दे सकते हैं, उदा। 123_my_variable। – Vityata

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