【问题标题】:Excel VBA How to convert cell format text to numberExcel VBA 如何将单元格格式文本转换为数字
【发布时间】:2016-08-05 02:28:18
【问题描述】:

我的代码所做的是它会自动获取文件夹中的所有 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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    尝试将以下行添加到您的代码中:Columns("A").TextToColumns。它有效。

    很抱歉进行了次要编辑。有人否决了我的答案,结果证明是正确的。 T_T

    【讨论】:

    • 如果您查看问题,这甚至不是一个有用的答案。请删除或更改您的答案以匹配问题。 TextToColumns 方法将包含文本的一列单元格解析为几列。它与更改单元格的格式无关
    • @dbmitch 我尝试使用此代码将文本格式的数字更改为列中的数字格式(常规)并且它有效。在将其发布为答案之前,我尝试了所有代码
    • 感谢 Anastasiya 提供的解决方案。效果很好。
    • 不客气 Kelvin Wong。 @dbmitch 看到它有效吗?现在,请您扭转您的反对票吗? :)
    • @dbmitch 不用担心。谢谢你扭转它。也感谢(+1)。我假设它来自你:)
    【解决方案2】:

    另一种方式

    假设您的范围来自A1:A15,那么您也可以这样做

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

    要了解它的作用,您可以查看This 帖子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 2021-11-21
      • 2014-05-25
      • 2011-04-12
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      相关资源
      最近更新 更多