我的函数是从第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
答案 0 :(得分:0)
以下VBA更改了"数字格式"从A4到A20到文本 - 这是你想要的吗? IsNumeric()正在评估值是否为数字。听起来你只想改变值的存储方式 - 对吗?
Range("A4:A20").Select
Selection.NumberFormat = "@"
在任何情况下,如果这不是您的确切问题,我认为您正在尝试确定该单元格的数字格式。