Excel VBA代码从文本更改为范围的数值,但列不高?
我在VBA中编写了一个代码,将文本范围内的值更改为常规值(数字)。它工作正常,但有一个问题。当我检查所有列值时,只有带有整数值(“2345”)的字符串更改为整数(2345),但带有浮点值(“123.456”)的字符串没有任何更改,类型更改为General,但值保持不变 这是vba代码Excel VBA代码从文本更改为范围的数值,但列不高?,excel,vba,Excel,Vba,我在VBA中编写了一个代码,将文本范围内的值更改为常规值(数字)。它工作正常,但有一个问题。当我检查所有列值时,只有带有整数值(“2345”)的字符串更改为整数(2345),但带有浮点值(“123.456”)的字符串没有任何更改,类型更改为General,但值保持不变 这是vba代码 If (ws.Name = "TB") Then shTB.Activate [A:A].Select With Selection .NumberFormat = "Gen
If (ws.Name = "TB") Then
shTB.Activate
[A:A].Select
With Selection
.NumberFormat = "General"
.Value = .Value
End With
结果如下表所示,浮动值仍然没有任何变化。如您所见,只有第119行变为数字或整数。任何建议或帮助都将不胜感激
如果“.”代表千位分隔符,只需将其移除即可
With shTB.Range("A:A")
.Replace what:=".", replacement:=vbNullString
.NumberFormat = "General"
End With
顺便说一句,正如您所看到的,您无需选择任何内容:只需按其直接引用操作即可。从您的结果中可以清楚地看出,数据的文本格式与区域设置之间存在不匹配 您的数据似乎来自逗号是小数分隔符而不是句点的源。尝试:
Sub dural()
With Range("A:A")
.NumberFormat = "General"
.Replace ",", "."
.Value = .Value
End With
End Sub
我的意思是按照您的示例“123.456”将点替换为空字符串(即删除它们)