VBA का उपयोग करते हुए अंतिम 1000 विभाजक
मैं 1000 विभाजक के लिए वीबीए समाधान प्राप्त करने की कोशिश कर रहा हूं क्योंकि मेरे मामले में सूत्र का उपयोग करना संभव नहीं है और कस्टम कोड के साथ किया जाना चाहिए। यदि आवश्यक हो तो वर्तमान समाधान उत्तर संख्या प्रारूप में हजारों विभाजक और दशमलव के साथ लिया जाता है
यहाँ कोड है:
Function CustomFormat(InputValue As Double) As String
CustomFormat = Format(InputValue, "# ###")
If (Right(CustomFormat, 1) = ".") Then
CustomFormat = Left(CustomFormat, Len(CustomFormat) - 1)
End If
End Function
यह 1000 जैसी संख्याओं के लिए काम कर रहा है, लेकिन यह 1000000 के लिए काम नहीं करता है। इसके अलावा 1000000000 काम नहीं करेगा। मैं वर्तमान में समाधान पर काम कर रहा हूं, लेकिन अगर किसी के पास साझा करने के लिए कुछ है, तो इसकी सराहना की जाएगी।
मूल समाधान का उपयोग करने के मामले में:
Function CustomFormat(InputValue As Double) As String
CustomFormat = Format(InputValue, "#,###.##")
If (Right(CustomFormat, 1) = ".") Then
CustomFormat = Left(CustomFormat, Len(CustomFormat) - 1)
End If
End Function
जवाब
मुझे लगता है कि vba को आपके क्षेत्रीय सेटिंग्स में परिभाषित हजारों विभाजक की आवश्यकता है। चूंकि यह आपके मामले में एक अल्पविराम है, आप इस तरह से कुछ कर सकते हैं
Function CustomFormat(InputValue As Double) As String
CustomFormat = Format(InputValue, "#,###")
If (Right(CustomFormat, 1) = ".") Then
CustomFormat = Left(CustomFormat, Len(CustomFormat) - 1)
End If
CustomFormat = Replace(CustomFormat, ",", " ")
End Function
एक और दृष्टिकोण रजिस्ट्री से विभाजक को पढ़ने के लिए है। यह विभिन्न क्षेत्रीय सेटिंग्स में काम करना चाहिए।
Function CustomFormat(InputValue As Double) As String
Dim sThousandsSep As String
Dim sDecimalSep As String
Dim sFormat As String
sThousandsSep = Application.International(xlThousandsSeparator)
sDecimalSep = Application.International(xlDecimalSeparator)
' Up to 6 decimal places
sFormat = "#" & sThousandsSep & "###" & sDecimalSep & "######"
CustomFormat = Format(InputValue, sFormat)
If (Right$(CustomFormat, 1) = sDecimalSep) Then CustomFormat = Left$(CustomFormat, Len(CustomFormat) - 1)
End If
' Replace the thousands separator with a space
' or any other character
CustomFormat = Replace(CustomFormat, sThousandsSep, " ")
End Function
Application.International
@RonRosenfeld द्वारा सुझाए अनुसार उपयोग करने के लिए परिवर्तित फ़ंक्शन को संपादित करें ।
बड़ी संख्याओं को शामिल करने के लिए आपको अपना संख्या प्रारूप बढ़ाने की आवश्यकता है।
### ### ## 0 ","