繁体   English   中英

用部分原始文本替换单元格范围中的字符串

[英]replace string in cell range with part of the original text

我有一个 Excel 表格,其中有一列汽车编号。 它目前作为报告下载,格式为“58 58”,适用于编号为 58 的汽车。

我想替换 H​​ 列中的每个出现,并将“58 58”替换为数字“58” | “60 60”与“一个数字”“60”|“90 90”与一个数字“90”等等。

这一切都是在 VBA 中完成的。

谢谢

更新代码:Dim X As Long For X = 2 To Range("I" & Rows.Count).End(xlUp).Row '如果您在第 1 行 Range("I" & X) 中有标题,请将 1 更改为 2 .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 列中具有数据的所有单元格,对于每个单元格,它使用空格将单元格的文本拆分为一个数组,然后只取数组中的第一个元素(基本上是第一个空格之前的所有元素)并将其发布回单元格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM