沿行拆分单元格

沿行拆分单元格

我有一张如下所示的数据表:

预处理数据

我需要从单元格 E1 开始沿着顶行,到行中数据的末尾,并将标题分成两部分。我希望它看起来像这样:

后处理数据。

我应该提到,标题从“LZFmax_O 16Hz”更改为“LZFmin_O 16Hz”等等,但所有标题在频率值之前都有“_O”,所以我认为这可以在将标题分成两部分时使用。

这是我在这里的第一篇帖子,虽然我有使用其他编码语言的经验,但我对 VBA 还很陌生。

任何帮助都将不胜感激,干杯

答案1

以下示例或许能给你提供一些帮助:

 Sub delimit()
    Dim c As Range, arr As Variant, myRange As Range, lColumn As Long
        lColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
        Set myRange = Range(Cells(1, 4), Cells(1, lColumn))
        For Each c In myRange
            arr = Split(c.Value, " ")
            If UBound(arr) - LBound(arr) + 1 = 2 Then
                c.Value = arr(0)
                c.Offset(0, 1).Value = arr(1)
            End If
        Next c
 End Sub

这是我昨天编写的拆分代码和一些东西的组合。因此,我们首先找到最后一列,然后设置我们要遍历的范围。
我将范围从“ D1”开始,因为它似乎与示例数据相符。

然后我循环遍历该范围内的所有单元格,并运行 Split。
如果 Split 返回包含两个值的预期数组,我们会将它们打印在当前单元格和下一个单元格中。

这不是很动态,可能会覆盖一些东西。可能需要设置一个条件以避免意外覆盖东西。但我只是想将它应用于这个特定的场景,并期望我们知道所有可能出现的值。

它也仅在您在正确的工作表中运行时才有效,因此如果您想更改它,请随意。

相关内容