簡體   English   中英

Excel VBA 如何將單元格格式文本轉換為數字

[英]Excel VBA How to convert cell format text to number

我的代碼所做的是它會自動獲取文件夾中的所有 Excel 文件列表並比較主列表列上的序列號,然后如果值相同,它將復制序列號並將其粘貼到 C 列上。 如果兩種列格式相同,那么它將完美運行。 但如果該列以文本格式設置,則比較似乎會失敗。 我一直在尋找將這些單元格轉換為數字格式或通用格式的時間,以便可以成功進行比較而無需擔心格式。

在此處輸入圖片說明

在此處輸入圖片說明

Sub Compare()

Dim Dic As Object
Dim fso As Object
Dim fldStart As Object
Dim fl As Object
Dim Mask As String, i As Long
Dim Wbk As Worksheet, w1 As Worksheet

Set fso = CreateObject("scripting.FileSystemObject")
Set fld = fso.GetFolder("C:\Users\kelvinwong\Desktop\Survey Testing")
Set w1 = Workbooks("Book1.xlsm").Sheets("Sheet1")

Set Dic = CreateObject("Scripting.Dictionary")

Mask = "*.xlsx"

For Each fl In fld.Files
    If fl.Name Like Mask Then
        Set Wbk = Workbooks.Open(fld & "\" & fl.Name).Sheets("Sheet1")
        i = Wbk.Cells.SpecialCells(xlCellTypeLastCell).Row
        For Each oCell In Wbk.Range("A2:A" & i)
            If Not Dic.exists(oCell.Value) Then
                Dic.Add oCell.Value, oCell.Offset(, 0).Value
            End If
        Next oCell

    End If
Next fl

i = w1.Cells.SpecialCells(xlCellTypeLastCell).Row

For Each oCell In w1.Range("A2:A" & i)
    For Each key In Dic
        If oCell.Value = key Then
            oCell.Offset(, 2).Value = Dic(key)
        End If
    Next
Next

End Sub

嘗試Columns("A").TextToColumns添加到您的代碼中: Columns("A").TextToColumns 它有效。

抱歉小編輯。 有人低估了我的答案,結果證明是正確的。 T_T

另一種方式

假設您的范圍是A1:A15那么您也可以這樣做

[A1:A15] = [INDEX(INT(A1:A15),)]

要了解它的作用,您可以查看這篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM