0

我在这里所做的是将存储为文本的字符串转换为整数。不幸的是,只是将格式从一般更改为数字并不能解决问题,而我之前的人所做的是手动查找/替换每个单独的数字(即使用 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
4

1 回答 1

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

但是......这仍然不能解决数字存储为文本的问题。

于 2012-12-28T18:01:13.927 回答