excel - VBA: पाठ को संख्या में बदलें




excel-vba formatting (5)

इस समस्या को दरकिनार करने के लिए नीचे दिए गए फ़ंक्शन ( [E:E] अपनी आवश्यकताओं के लिए उपयुक्त सीमा में बदलते हुए) का उपयोग करें (या किसी अन्य प्रारूप में परिवर्तन करें जैसे कि "mm / dd / yyyy"):

[E:E].Select
With Selection
    .NumberFormat = "General"
    .Value = .Value
End With

PS मेरे अनुभव में, यह VBA समाधान बड़े डेटा सेटों पर तेजी से काम करता है और 'चेतावनी बॉक्स' विधि का उपयोग करने की तुलना में एक्सेल के दुर्घटनाग्रस्त होने की संभावना कम है।

मेरे पास संख्याओं के कॉलम हैं, जो भी कारण से, पाठ के रूप में स्वरूपित किए जाते हैं। यह मुझे उप-प्रकार्य फ़ंक्शन जैसे अंकगणितीय कार्यों का उपयोग करने से रोकता है। इन "टेक्स्ट नंबरों" को सही नंबरों में बदलने का सबसे अच्छा तरीका क्या है?

यहाँ विशिष्ट मुद्दे का एक स्क्रीनशॉट है:

मैंने बिना किसी लाभ के इन स्निपेट्स को आज़माया है:

Columns(5).NumberFormat = "0"

तथा

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

इसका उपयोग सभी संख्यात्मक मानों (यहां तक ​​कि पाठ के रूप में स्वरूपित) को खोजने के लिए किया जा सकता है और उन्हें एकल (CSng फ़ंक्शन) में परिवर्तित किया जा सकता है।

For Each r In Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
    If IsNumeric(r) Then
       r.Value = CSng(r.Value)
       r.NumberFormat = "0.00"
    End If
Next

बड़े डेटासेट के लिए तेज़ समाधान की आवश्यकता होती है।

'टेक्स्ट टू कॉलम' की कार्यक्षमता का उपयोग करना एक तेज़ समाधान प्रदान करता है।

कॉलम एफ पर आधारित उदाहरण, 25 से लास्ट तक की रेंज

Sub ConvTxt2Nr()

Dim SelectR As Range
Dim sht As Worksheet
Dim LastRow As Long

Set sht = ThisWorkbook.Sheets("DumpDB")

LastRow = sht.Cells(sht.Rows.Count, "F").End(xlUp).Row

Set SelectR = ThisWorkbook.Sheets("DumpDB").Range("F25:F" & LastRow)

SelectR.TextToColumns Destination:=Range("F25"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

End Sub

मुझे पहले यह समस्या थी और यह मेरा समाधान था।

With Worksheets("Sheet1").Columns(5)
    .NumberFormat = "0"
    .Value = .Value
End With

यह एक्सेल वर्कबुक के कॉलम के सभी टेक्स्ट को संख्याओं में परिवर्तित करता है।

Sub ConvertTextToNumbers()
Dim wBook As Workbook
Dim LastRow As Long, LastCol As Long
Dim Rangetemp As Range

'Enter here the path of your workbook
Set wBook = Workbooks.Open("yourWorkbook")
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

For c = 1 To LastCol
Set Rangetemp = Cells(c).EntireColumn
Rangetemp.TextToColumns DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True
Next c
End Sub




formatting