处理一个文件,该文件可能将所有数字都视为文本,也可能不将所有数字视为文本



我的函数旨在从第1列第4行开始接收vLookup的给定输入文件,输入文件将随着时间的推移由不同的用户更新,这些用户可能不采用相同的格式。我需要能够浏览文件并将所有行的"帐号"格式化为文本,因为我们的查找值是文本(有些包含字母,有些仅包含数字)。

我现在遇到的问题是,有些行已经格式化为文本(Excel给出了以麻木形式存储的文本的警告图标。其他行都是真正的数字。下面的代码将那些已经是数字的行修复为文本,但随后将那些以数字形式存储的行打断。我不知道如何在代码中区分这两种表示,b/c它们都返回IsNumeric()为True,但与CStr()的结果相反。

Dim lastRow As Integer
Workbooks(convertFile).Activate
Range("A4").Select
lastRow = (Cells(Rows.Count, 1).End(xlUp).Row)
For i = 4 To lastRow
    If IsNumeric(Cells(i, 1).value) Then
        Dim temp As String
        temp = CStr(Cells(i, 1).Text)
        Cells(i, 1).value = temp
    End If
Next i 

以下VBA将A4到A20的"数字格式"更改为Text-这就是您想要的吗?IsNumeric()正在评估该值是否为数字。听起来你只是想改变值的存储方式,对吧?

Range("A4:A20").Select
Selection.NumberFormat = "@"

无论如何,如果这不是你的确切问题,我认为你正在尝试确定单元格的数字格式。

最新更新