@SiddharthRout 是的,我只需要有数据的行。我想我现在可以使用 @JMax 的 End(xlToLeft) ...现在我正在迭代单元格,一旦到达最后一行,我就可以退出 For every 循环。我现在可能可以使用这个了。 –makerofthings7 14 分钟前
为此,你不需要.SpecialCells
您也不需要循环遍历行:)
这是示例代码。这会将所有有数据的行复制到 Sheet2 (久经考验)
Sub Sample()
Dim ws As Worksheet
Dim rng As Range
Dim LastRow As Long, LastCol As Long
Set ws = Sheets("Sheet1")
With ws
LastRow = .Cells.Find(What:="*", After:=.Range("A1"), Lookat:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
LastCol = .Cells.Find(What:="*", After:=.Range("A1"), Lookat:=xlPart, _
LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
MatchCase:=False).Column
With .Range("A1:" & Split(Cells(, LastCol).Address, "$")(1) & LastRow)
.AutoFilter Field:=1, Criteria1:="<>"
Set rng = ws.AutoFilter.Range
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
Destination:=Sheets("Sheet2").Range("A1")
End With
End With
End Sub
SNAPSHOT
我假设特定行中的所有单元格都有数据,并且不会出现这样的情况
@makerofthings7:我想我知道你到底想做什么:)你不需要使用循环来实现你想要的。只是一个简单的问题。是否有可能说单元格 C10 可能有值,但 B10 可能没有? – Siddharth Rout 12 分钟前
如果有,那么我们将必须相应地设置自动过滤条件。
Edit:
WAY 2
另一种方法是对数据进行排序,将空格向下推,然后复制结果范围:)
HTH