我在这里做的是将存储为文本的字符串转换为整数。不幸的是,只是将格式从一般格式更改为数字格式并不能解决问题,而我之前所做的就是手动查找/替换每个单独的数字(即使用excel查找替换为0,1,2,3等)
我对下面代码的问题是它只会替换一些数字,但不是全部。我甚至无法弄清楚它所做的设定模式。据我所知,for语句应该为每个“数字”值从0到9运行吗?那么为什么不替换所有字符串呢?
Dim Digit As Integer
Dim ReplacementRange As Range
Set ReplacementRange = Range("Table1[AR]")`
Digit = 0
For Digit = 0 To Digit = 9
ReplacementRange.Replace What:=Digit, Replacement:=Digit, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Digit = Digit + 1
Next
答案 0 :(得分:7)
要将存储为某个范围内的文字的数字快速转换为其数字值,您只需将这些值放入范围内即可:
ReplacementRange.value = ReplacementRange.value
for循环结构错误。正确的最小语法为[variable] = [startValue] to [endValue]
,例如:For x = 0 to 1
。
For Digit = 0 To Digit = 9
最终被评估为等同于For Digit = 0 to 0
(因为您之前将Digit设置为0.这意味着循环仅运行Digit = 0
的值。您也在递增循环中的数字,通过增加步数可以更合理地处理。在这种情况下,你想要击中每一个数字,所以你不应该增加数值。
要修复循环,您需要执行以下操作:
For Digit = 0 To 9
ReplacementRange.Replace What:=Digit, Replacement:=Digit, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next
但是......仍然无法解决以文本形式存储的数字问题。