我有一张带有汽车编号列的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)下标超出范围
答案 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
它是如何工作的:它遍历第一列中具有数据的所有单元格,并且对于每个单元格,它使用空格将单元格的文本拆分为数组,然后它只接受数组中的第一个元素(基本上是第一个空格)和回到牢房的帖子。