首页 文章

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

提问于
浏览
-1

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

我想将每个事件替换为H列,并将“58 58”替换为数字“58”| “60 60”,带“数字”60“|”90 90“,带数字”90“,依此类推 .

这一切都在VBA中完成 .

谢谢

更新的代码:Dim X为长X = 2到范围(“I”和Rows.Count).End(xlUp).Row'如果在第1行中有 Headers ,则将1更改为2(“I”和X) .Formula = Split(Range(“I”&X).Text,“”)(0)

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

1 回答

  • 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
    

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

相关问题