我试图循环遍历非连续数据 - 基本上遍历所有Range("H4")
中具有值的单元格,考虑到数据之间可能存在一些空行,我需要跳过并移动在<{1}}中将 3 单元格合并到 1 中。
尝试了不同的方法,但每次击中空行时都会停止。下面将更像是一个无限循环,它可以满足我的需求,但是当没有更多数据时,无法在某些时候突破。
Sub GenerateStyleFabricColourV2()
Dim srcData As Range
Dim RowNum As Long
RowNum = 4
Set srcData = Range("K:M")
If Not IsEmpty(srcData.Value) Then
Do While IsEmpty(RowNum) = False
Cells(RowNum, 8).Value = Cells(RowNum, 11).Value & Cells(RowNum, 12).Value & Cells(RowNum, 13).Value
RowNum = RowNum + 1
Loop
End If
Range("H4").Select
Range(Selection, Selection.End(xlDown)).Select
End Sub
答案 0 :(得分:6)
IsEmpty
指的是可能有或没有值的单元格(即空白或非空白)。它不打算用整数做任何事情。
Sub GenerateStyleFabricColourV2()
Dim srcData As Range
Dim rowNum As Long, lastRow As Long
With Worksheets("sheet2")
lastRow = Application.Max(4, _
.Cells(.Rows.Count, "K").End(xlUp).Row, _
.Cells(.Rows.Count, "L").End(xlUp).Row, _
.Cells(.Rows.Count, "M").End(xlUp).Row)
With .Cells(4, "H").Resize(lastRow - 4 + 1, 1)
.FormulaR1C1 = "=rc[3]&rc[4]&rc[5]"
.Value = .Value2
End With
End With
End Sub
答案 1 :(得分:1)
Sub GenerateStyleFabricColourV2()
Dim srcData As Range, rcell As Range
Set srcData = ThisWorkbook.Sheets("Sheet1").Range("K4:K" & ThisWorkbook.Sheets("Sheet1").Cells(Sheet1.Rows.Count, "K").End(xlUp).Row)
For Each rcell In srcData.Cells
rcell.Offset(0, -3).Value = rcell.Value & rcell.Offset(0, 1).Value & rcell.Offset(0, 2).Value
Next rcell
End Sub
这很简单。我喜欢循环遍历一列并使用偏移量。我可能会过度简化它。
答案 2 :(得分:-1)
这个简单的代码非常简单&amp;也有效,
对于a = 1到lastrow
如果单元格(a,1)=“”那么
转到最后一行
您可以在这里输入代码
lastline:
接下来