我是VBA的新手,我一直在努力研究如何做以下一段时间,任何帮助真的很感激!
我有一行看起来像这样的数据(但更长!)
30 456 789 489 384 30 2789 394 3827 2783 382 30 488 3773 37773 27722 30
每个 30 表示应该是新行,因此我想将每个 30 之间的数据复制到新行。
问题是我无法确定如何仅选择要复制的 30 之间的数据范围。
我尝试了各种各样的东西,但我没有运气!
感谢任何帮助。
答案 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
'------------------------------------------------------------------------------------------