用原始文本的一部分替换单元格区域中的字符串

时间:2015-07-06 00:26:03

标签: excel excel-vba text replace range vba

我有一张带有汽车编号列的Excel工作表。它目前作为报告下载,格式为“58 58”,车号为58.

我想将每个匹配项替换为H列,并将“58 58”替换为数字“58”| “60 60”,带“数字”60“|”90 90“,带数字”90“,等等。

这一切都在VBA中完成。

谢谢

更新代码: Dim X As Long 对于X = 2 To Range(“I”& Rows.Count).End(xlUp).Row'如果第1行中有标题,则将1更改为2     范围(“I”和X).Formula =分割(范围(“I”和X)。文本,“”)(0)

我使用了上面的代码,但它给了我运行时错误(9)下标超出范围

1 个答案:

答案 0 :(得分:0)

可能最简单的方法是循环。如果从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

它是如何工作的:它遍历第一列中具有数据的所有单元格,并且对于每个单元格,它使用空格将单元格的文本拆分为数组,然后它只接受数组中的第一个元素(基本上是第一个空格)和回到牢房的帖子。