用部分原始文本替换单元格范围内的字符串
replace string in cell range with part of the original text
我有一个 excel sheet,其中有一列是车号。当前下载的报告格式为“58 58”,车号为 58。
我想替换 H 列下的每个匹配项,并将“58 58”替换为数字“58”| “60 60”与 "a numeric "60” | “90 90”与数字“90”等。
这一切都在 VBA 中完成。
谢谢
更新代码:
昏暗 X 一样长
For X = 2 To Range("I" & Rows.Count).End(xlUp).Row '如果第 1 行有标题,请将 1 更改为 2
Range("I" & X).Formula = Split(Range("I" & X).Text, " ")(0)
我使用了上面的代码,但它给了我运行时错误 (9) 下标超出范围
可能最简单的方法是循环。如果您从 1 开始,倒退可以缓解 101 被弄乱的可能问题。
Sub DoubleToSingle()
Dim X As Long
For X = 100 To 1 Step -1
Cells.Replace X & " " & X, X
Next
End Sub
这适用于所有单元格,如果您只想在列替换单元格上使用它。与列(2)。其中 2 是 B 列,3 是 C 等
编辑:将此代码用于更新后的问题:
Sub DoubleToSingle2()
Dim X As Long
For X = 2 To Range("I" & Rows.Count).End(xlUp).Row
If InStr(1, Range("I" & X).text, " ") > 0 Then Range("I" & X).Formula = Split(Range("I" & X).text, " ")(0)
Next
End Sub
工作原理:它轮询第 I 列中所有有数据的单元格,对于每个单元格,它使用 space 将单元格的文本拆分为一个数组,然后它只取第一个元素数组(基本上是第一个 space 之前的所有内容)并将其发布回单元格。
我有一个 excel sheet,其中有一列是车号。当前下载的报告格式为“58 58”,车号为 58。
我想替换 H 列下的每个匹配项,并将“58 58”替换为数字“58”| “60 60”与 "a numeric "60” | “90 90”与数字“90”等。
这一切都在 VBA 中完成。
谢谢
更新代码: 昏暗 X 一样长 For X = 2 To Range("I" & Rows.Count).End(xlUp).Row '如果第 1 行有标题,请将 1 更改为 2 Range("I" & X).Formula = Split(Range("I" & X).Text, " ")(0)
我使用了上面的代码,但它给了我运行时错误 (9) 下标超出范围
可能最简单的方法是循环。如果您从 1 开始,倒退可以缓解 101 被弄乱的可能问题。
Sub DoubleToSingle()
Dim X As Long
For X = 100 To 1 Step -1
Cells.Replace X & " " & X, X
Next
End Sub
这适用于所有单元格,如果您只想在列替换单元格上使用它。与列(2)。其中 2 是 B 列,3 是 C 等
编辑:将此代码用于更新后的问题:
Sub DoubleToSingle2()
Dim X As Long
For X = 2 To Range("I" & Rows.Count).End(xlUp).Row
If InStr(1, Range("I" & X).text, " ") > 0 Then Range("I" & X).Formula = Split(Range("I" & X).text, " ")(0)
Next
End Sub
工作原理:它轮询第 I 列中所有有数据的单元格,对于每个单元格,它使用 space 将单元格的文本拆分为一个数组,然后它只取第一个元素数组(基本上是第一个 space 之前的所有内容)并将其发布回单元格。