Sub test()
Application.ScreenUpdating = False
Columns("A:I").ClearContents
WOK = Dir(ThisWorkbook.Path & "\*.xls")
Do While WOK <> ""
If WOK <> ThisWorkbook.Name Then
With Workbooks.Open(ThisWorkbook.Path & "\" & WOK)
For i = 1 To .Sheets(1).Range("A65536").End(3).Row
If ThisWorkbook.Sheets(1).Range("A65536").End(3).Row = 1 Then
W = 10
Else
W = 2
End If
If .Sheets(1).Range("H" & i) = "备注" Then .Sheets(1).Rows(i).Copy ThisWorkbook.Sheets(1).Range("A65536").End(3)(W)
Next
.Close False
End With
End If
WOK = Dir
Loop
Application.ScreenUpdating = True
End Sub
描红的地方想不明白,一般End(3).Row,怎么End(3)(W)???
2、 If ThisWorkbook.Sheets(1).Range("A65536").End(3).Row = 1 Then
W = 10
Else
W = 2
End If
这一句代码判断目标工作表(工作簿中第一个工作表)的A列的最后一个有数据的单元格的行号。 如果这一列没有数据,或者只有第一行有数据,那么会返回行号:1。如果A列没有数据,或者只有A1单元格有数据,那么W=10。否则W=2。结合ThisWorkbook.Sheets(1).Range("A65536").End(3)(W) 这一句代码,就是把复制的内容粘贴到以 A(W)为顶点的区域中。这个A(W)是以上一个有数据的单元格为第1开始,向下数W行,把数据粘贴到第W行。
3、 If .Sheets(1).Range("H" & i) = "备注" Then .Sheets(1).Rows(i).Copy ThisWorkbook.Sheets(1).Range("A65536").End(3)(W)