c
指定了我要遍历的列,“样式”是应用于空白单元格的突出显示。如果该单元格为空,则需要将该行(Cells(i,4))
的ID复制到我当前正在遍历的列c
的报告页面中。为了提高可读性,我试图将每个实例复制到该行的下一个可用单元格中,但是可以想象,在代码的Range(c & Rows.Count)
部分出现了错误。
我知道我可以在其中放置A
或任何其他列字母,但是我只是想知道我是否能够在其中放置要迭代的变量。有什么提示吗?
For c = 1 To 103
For i = 1 To coor(2)
If Cells(i, c).Style = "60% - Accent2" Then
Cells(i, 4).Copy Sheets("ReportsPage").Range(c & Rows.Count).End(xlUp).Offset(1, 0)
End If
Next i
Next c
答案 0 :(得分:2)
使用Cells()
代替Range()
。 Cells()
允许使用基本位置:
For c = 1 To 103
For i = 1 To coor(2)
If Cells(i, c).Style = "60% - Accent2" Then
Cells(i, 4).Copy Sheets("ReportsPage").Cells(Rows.Count,c).End(xlUp).Offset(1, 0)
End If
Next i
Next c
需要注意的一点是,即使是活动表,也应始终将任何范围对象附加到其父表:
With ActiveSheet
For c = 1 To 103
For i = 1 To coor(2)
If .Cells(i, c).Style = "60% - Accent2" Then
.Cells(i, 4).Copy Sheets("ReportsPage").Cells(Rows.Count,c).End(xlUp).Offset(1, 0)
End If
Next i
Next c
End With
答案 1 :(得分:0)
您可以使用它来查找最后一列:
Dim LastCol As Integer
With ActiveSheet
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With