我正在尝试编写一个宏来选择在特定列中包含文本的任何行(与哪个文本无关)然后将其粘贴到摘要表中,这需要遍历工作簿栏中的所有工作表摘要表。但是我遇到问题让它工作,我一直得到'编译错误:方法或数据成员未找到',我需要宏来运行所有工作表而不管名称,因为工作表最终存档并添加新的工作表。
我现在已经改变了宏找到带有文本的单元格的方式,我不知道这是否会改变:
Sub SmartCopy()
Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long, j As Long
Set s1 = Sheets("Customer 1")
Set s2 = Sheets("Action Summary")
N = s1.Cells(Rows.Count, "C").End(xlUp).Row
j = 2
For i = 6 To N
If s1.Cells(i, "C").Value = "" Then
Else
s1.Cells(i, "C").EntireRow.Copy s2.Cells(j, 1)
j = j + 1
End If
Next i
End Sub
我是新手,可能完全错了,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
其次,这应该基于您过滤和复制特定行的标准。您可能需要调整过滤器或复制的行,但此循环将起作用。
Sub TestIt()
Dim wsheet As Worksheet
For i = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(i).Name <> "Action Summary" Then 'And ThisWorkbook.Worksheets(i).Name <> "Another Exception" And ...
Set wsheet = ThisWorkbook.Worksheets(i)
For j = 6 to wsheet.Range("A" & Rows.Count).End(xlUp).Row
If Not wsheet.Range("C" & j).Value = "" Then
wsheet.Range("C" & j).EntireRow.Copy
Sheets("Action Summary").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End If
Next j
End If
Next i
End Sub