如何删除多个工作表中的同一行而不重复代码?

Sheets("CDGL Data").Select Rows([1]).EntireRow.Delete Sheets("CDGL Data (2)").Select Rows([1]).EntireRow.Delete Sheets("CDGL Data (3)").Select Rows([1]).EntireRow.Delete Sheets("CDGL Data (4)").Select Rows([1]).EntireRow.Delete 

将它们重新组合成一个Array

 Sheets(Array("CDGL Data", "CDGL Data (2)", "CDGL Data (3)", "CDGL Data (4)")).Select Rows("1:1").Delete Shift:=xlUp 

(基于macroslogging器代码,非常适合发现Excel对象模型和API)

您将要遍历工作表并删除行:

 Sub delrow() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If Left(ws.Name, 9) = "CDGL Data" Then Rows(1).Delete End If Next ws End Sub 

这将删除每个CDGL Data为前9个字符的行。

如果你想更具体一点,那么我们可以创build一个string连接的所有名单。 然后看看表单名是否在string中:

 Sub delrow() Dim ws As Worksheet Dim wsname As String wsname = "CDGL Data,CDGL Data (2),CDGL Data (3),CDGL Data (4)" For Each ws In ThisWorkbook.Worksheets If InStr(wsname, ws.Name) Then Rows(1).Delete End If Next ws End Sub