首页 > 解决方案 > 通过列循环拆分字符串

问题描述

我有一列充满了我不喜欢的格式的数据,并且需要另一种格式的数据。目前它们的格式如下:“190826_095630_3E_1 (ROI 0)”,我只需要“3E”部分。我已经编写了一个使用“_”的字符串拆分,我想我可以只获取我想要的生成的数据列,但是当我单击每个单元格时,我只能让它一次工作一个单元格。我试图编写一个 for 循环,但我遇到了麻烦,很可能是因为我使用了“active.cell”。有没有人有更好的方法来循环这个拆分通过我的专栏?或者,如果您也知道如何只返回第三个字符串拆分 (3E),我将不胜感激。

'无循环:这适用于一个单元格

Option Explicit

Sub NameTest()
    Dim txt As String
    Dim i As Integer
    Dim FullName As Variant


    txt = ActiveCell.Value

    FullName = Split(txt, "_")

    For i = 0 To UBound(FullName)

        Cells(1, i + 1).Value = FullName(i)

    Next i


End Sub


'Attempt at a loop: 
Option Explicit

Sub NameTest()
    Dim txt As String
    Dim i As Integer
    Dim FullName As Variant
    Dim x As Integer

    For x = 1 To 1000

    txt = ActiveCell.Value

    FullName = Split(txt, "_")

    For i = 0 To UBound(FullName)

        Cells(1, i + 1).Value = FullName(i)

    Next i
    Next x

End Sub

我想让它一直运行到给定列中包含数据的最后一个单元格。

标签: arraysexcelvbastringloops

解决方案


推荐阅读