2010-06-22 13 views
101

में मिलीसेकंड प्रदर्शित करें मैं एक्सेल मैक्रो में मिलीसेकंड प्रदर्शित करने की कोशिश कर रहा हूं। मेरे पास पूर्णांक का एक स्तंभ है जो मिलीसेकंड में बस टाइमस्टैम्प हैं (उदाहरण के लिए 28095200 7: 48: 15.200 बजे है), और मैं इसके आगे एक नया कॉलम बनाना चाहता हूं जो चलने वाले औसत को बनाए रखता है और "एचएच: मिमी में समय प्रदर्शित करता है : एस .000 "प्रारूप। मैंने कई अलग-अलग मार्गों की कोशिश की है, लेकिन मुझे अजीब चीजें होने के बिना मिलीसेकंड नहीं मिल सकता है। ,एक्सेल

Dim Cel As Range 
Set Cel = Range("B1") 
temp = Application.Average(Range("A1:A2"))/1000 
ms = Round(temp - Int(temp), 2) * 1000 
Cel.Value = Strings.Format((temp/60/60/24), "hh:mm:ss") _ 
       & "." & Strings.Format(ms, "#000") 

किसी कारण से यह केवल प्रदर्शित करता है:

यहाँ है कि मैं क्या अभी है "मिमी: ss.0" सेल में। फिर भी जब मैं सेल पर क्लिक करता हूं, तो यह सूत्र बार में "एचएच: मिमी: एसएस" दिखाता है। सेल में घंटों क्यों गुम हैं?

इसके अलावा, एक और अजीब बात यह होती है कि अगर मैं Strings.Format(ms, "#000.") पर अंतिम पंक्ति बदलता हूं, तो मुझे "hh: mm: ss.000" मिलता है। यही वह है जो मैं चाहता हूं, अतिरिक्त अवधि नहीं।

उत्तर

194

सेल B1 पर राइट क्लिक करें और प्रारूप कक्ष चुनें। कस्टम में, डाल पाठ बॉक्स में निम्न लेबल प्रकार:

[h]:mm:ss.000 

कोड में यह सेट करने के लिए आप की तरह कुछ कर सकते हैं:

Range("A1").NumberFormat = "[h]:mm:ss.000" 

है कि आप क्या आप 'देना चाहिए फिर से देख रहे हैं

नोट: विशेष रूप से स्वरूपित फ़ील्ड अक्सर आवश्यक है कि स्वरूपित पाठ की संपूर्ण सामग्री के लिए कॉलम चौड़ाई पर्याप्त हो। अन्यथा, पाठ ###### के रूप में प्रदर्शित होगा।

+0

यय! लेकिन क्या कोड में ऐसा करने का कोई तरीका है? अब जब भी मैं मैक्रो चलाता हूं, स्वरूपण रीसेट हो जाता है। (क्योंकि मैं मैक्रो में शीट को हटा रहा हूं और पुनर्निर्माण कर रहा हूं।) Cel.EntireRow.NumberFormat = "[h]: mm: ss.000" लेकिन उसने मुझे सेल में "######" दिया। – Evelyn

+0

@Evelyn - 3 चीजें: 1) मैंने कोड प्रारूप को सेट करने के लिए आवश्यक कोड जोड़ा है। 2) सुनिश्चित करें कि आपका कॉलम पूरे स्वरूपित पाठ को फिट करने के लिए पर्याप्त है। ऊपर मेरा नोट देखें। 3) गिल्बर्ट के जवाब देखें और 'राउंड' समारोह में '3' के उपयोग पर ध्यान दें। यह सुनिश्चित करता है कि आपको केवल 2 के बजाय 3 दशमलव स्थान प्राप्त हों। –

+0

आह! तुम सही हो। मुझे बस कॉलम को चौड़ा करने की जरूरत है। इसके अलावा, मैं केवल इस मामले में 2 की सटीकता चाहता था। मैं बस इसे 3 के लिए स्वरूपित करना चाहता था। मदद के लिए बहुत बहुत धन्यवाद! – Evelyn

4

मैं Excel में ऐसा किया 2000

यह बयान होना चाहिए: ms = Round(temp - Int(temp), 3) * 1000

आप [h]:mm:ss.000

4

का परिणाम सेल मैं Excel 2007 में खोज की है के लिए एक कस्टम प्रारूप बनाने की जरूरत , यदि परिणाम एक एम्बेडेड क्वेरी से एक टेबल हैं, तो ss.000 काम नहीं करता है। मैं क्वेरी परिणाम पेस्ट कर सकता हूं (SQL सर्वर प्रबंधन स्टूडियो से), और समय को ठीक प्रारूपित कर सकता हूं। लेकिन जब मैं Excel में डेटा कनेक्शन के रूप में क्वेरी एम्बेड करता हूं, तो प्रारूप हमेशा मिलीसेकंड के रूप में .000 देता है।

-3

पहले एक तारीख (आमतौर पर 1970/01/01) के रूप में मिलीसेकंड समय के युग का प्रतिनिधित्व करते हैं, तो (86,400,000) एक दिन में अपने मिलीसेकंड समय मिलीसेकेंड की संख्या से विभाजित जोड़ें:

=DATE(1970,1,1)+(A1/86400000)

यदि आपका सेल ठीक से स्वरूपित है, तो आपको मानव-पठनीय दिनांक/समय देखना चाहिए।

+0

हाय जॉर्ज और आपका स्वागत है! दुर्भाग्य से, ओपी विशेष रूप से यह हासिल करने के लिए एक तरीका मांगता था कि सेल "ठीक से स्वरूपित" है। उनका मूल दृष्टिकोण पहले से ही उस भाग को शामिल करता है जिसे आप संबोधित कर रहे हैं: मिलीसेकंद टाइमस्टैम्प का रूपांतरण प्रारूपित डेटाटाइम मान में परिवर्तित करना। इसके अतिरिक्त, छः वर्षों के साथ, यह आपका पुराना सवाल है कि आप अपना समय निवेश कर रहे हैं। नए इनपुट पर आपका इनपुट अधिक सराहना की जाएगी! – Carsten