【发布时间】:2015-01-28 05:10:52
【问题描述】:
我需要能够查看工作簿每个工作表中指定范围的单元格,如果它们符合条件,则将该行复制到摘要表中。下面的代码在大部分情况下都有效,除了在少数情况下它复制不符合条件的行和一个跳过它应该复制的行的情况。
有没有办法使用调试工具,以便在循环浏览代码时随时可以看到:什么是活动工作表?什么是活动细胞?什么是活动行?等等。
另外,我应该使用 -For Each Cell in Range- 而不是 -While Len- 来循环遍历每张纸上的指定范围吗?
Sub LoopThroughSheets()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
Dim ws As Worksheet
'Start copying data to row 2 in HH (row counter variable)
LCopyToRow = 2
For Each ws In ActiveWorkbook.Worksheets
'Start search in row 7
LSearchRow = 7
While Len(ws.Range("M" & CStr(LSearchRow)).Value) > 0
'If value in column M > 0.8, copy entire row to HH
If ws.Range("M" & CStr(LSearchRow)).Value > 0.8 Then
'Select row in active Sheet to copy
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
'Paste row into HH in next row
Sheets("HH").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to active ws to continue searching
ws.Activate
End If
LSearchRow = LSearchRow + 1
Wend
Next ws
'Position on cell A1 in sheet HH
Sheets("HH").Select
Application.CutCopyMode = False
Range("A1").Select
MsgBox "All matching data has been copied."
End Sub
【问题讨论】: