我循环遍历列中的每个单元格,并对每个单元格的文本(由,分隔)执行拆分操作。我将结果放在一个数组中。我将它放在一系列单元格中。当获取下一个单元格值并执行拆分操作时,新值将覆盖先前的结果。如何找到下一个空单元格并放置数组内容而不进行覆盖。
Range("A1:A" & UBound(x) + 1) = WorksheetFunction.Transpose(x)
我将文字分开, 列E2中的示例A,B,C,D B,M,C ......在E3等等到36000(值可能会增加)
Dim txt As String
Dim x As Variant
Dim i As Long
Dim lrow As Double
lrow = Sheet1.UsedRange.Rows.Count
For j = 1 To lrow
txt = Sheet1.Range("m2").Offset(j - 1, 0)
x = Split(txt, ",")
For i = 0 To UBound(x)
'Debug.Print x(i)
Range("A1:A" & UBound(x) + 1) = WorksheetFunction.Transpose(x) 'How can i change this line to find next empty cell and palce the result in it
Next i
Next j
上面的代码将遍历每一行并拆分文本。但每次结果都被覆盖。如何找到下一个空单元格并将结果放入其中?
答案 0 :(得分:0)
试试这个:
j=1
i=1
Do While IsEmpty(Worksheets("test").Cells(j, i)) = False
'<do your stuff>
j = j + 1
Loop
j和i是细胞坐标。这个循环将遍历所有非空单元格并停在空单元格上。
答案 1 :(得分:0)
请尝试这个,这适用于M2 = abc,BCD,Xyz,pdt。如果M3 = zse,ssd,vbd将到来,它将把值A1重写为A(j)值。所以相应地更新它。
Dim i As Integer
Dim M2 As String
Dim spltStore As Variant
Public Sub page_load()
M2="abc,BCD,Xyz,pdt"
spltStore = Split(M2, ",")
j = 1
For i = 0 To UBound(spltStore)
Sheet1.Range("A" & j).Value = spltStore(i)
Debug.Print spltStore(i)
j = j + 1
Next i
End Sub
希望这对你有用。