处理可能会或可能不会将所有数字视为文本的文件

时间:2015-12-07 21:36:14

标签: vba

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

我现在遇到的问题是某些行已经被格式化为文本(并且Excel会将文本的警告图标存储为numb。其他行是真正的数字。以下代码将那些已经数字化的行修复为文本,但是然后打破那些作为数字存储的文本行。我无法弄清楚如何区分这两个表示的代码,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 

1 个答案:

答案 0 :(得分:0)

以下VBA更改了"数字格式"从A4到A20到文本 - 这是你想要的吗? IsNumeric()正在评估值是否为数字。听起来你只想改变值的存储方式 - 对吗?

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

在任何情况下,如果这不是您的确切问题,我认为您正在尝试确定该单元格的数字格式。