在两个值之间复制数据 - Excel VBA

时间:2015-08-10 10:44:40

标签: excel vba excel-vba

我是VBA的新手,我一直在努力研究如何做以下一段时间,任何帮助真的很感激!

我有一行看起来像这样的数据(但更长!)

30 456 789 489 384 30 2789 394 3827 2783 382 30 488 3773 37773 27722 30

每个 30 表示应该是新行,因此我想将每个 30 之间的数据复制到新行。

问题是我无法确定如何仅选择要复制的 30 之间的数据范围。

我尝试了各种各样的东西,但我没有运气!

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

Option Explicit

Sub setRows()
    Dim raw As String, xLns As Variant, i As Long, ws As Worksheet, xArr As Variant

    Set ws = ThisWorkbook.Sheets(1)
    raw = Join(Application.Transpose(Application.Transpose(ws.UsedRange.Rows(1))), "|")
    xLns = Split(raw, "30|")
    For i = 0 To UBound(xLns)
        If Len(xLns(i)) > 0 Then
            xArr = Split(xLns(i), "|")
            ws.Range(ws.Cells(i + 1, 1), ws.Cells(i + 1, UBound(xArr))) = xArr
        End If
    Next
End Sub

'------------------------------------------------------------------------------------------