运行与我不同的工作表的代码

有人可以build议这个代码有什么问题吗? 我试图删除任何空白行或在第8列中有“待定”一词。

如果“修改”工作表处于活动状态,此代码将起作用,但如果我尝试从另一个工作表中运行,则不起作用。 理想情况下,我希望它在没有实际激活或select工作表的情况下运行。 那可能吗?

谢谢!

Sub pending_blank_delete() With Sheets("Modifications") last_mod_row = .Range("A" & .Rows.Count).End(xlUp).Row End With Dim c As Range Dim SrchRng Set SrchRng = Range(Cells(2, 8), Cells(last_mod_row, 8)) Do Set c = SrchRng.find("Pending", LookIn:=xlValues) If Not c Is Nothing Then c.EntireRow.Delete Loop While Not c Is Nothing On Error Resume Next Range(Cells(2, 8), Cells(last_mod_row, 8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

这应该适合你…

你的范围没有指定哪个表,所以我把With语句中的所有东西都移动了。 当您看到Set SrchRng = Range(.Cells(2, 8), .Cells(last_mod_row, 8)).Cells(2, 8)表示Sheets("Modifications").Cells(2, 8) 。 没有把它放在With语句中,它将从活动工作表创build范围。 不使用With语句的替代方法是Set SrchRng = Range(Sheets("Modifications").Cells(2, 8), Sheets("Modifications").Cells(last_mod_row, 8))

 Sub pending_blank_delete() Dim c As Range Dim SrchRng With Sheets("Modifications") last_mod_row = .Range("A" & .Rows.Count).End(xlUp).Row Set SrchRng = Range(.Cells(2, 8), .Cells(last_mod_row, 8)) Do Set c = SrchRng.Find("Pending", LookIn:=xlValues) If Not c Is Nothing Then c.EntireRow.Delete Loop While Not c Is Nothing On Error Resume Next Range(.Cells(2, 8), .Cells(last_mod_row, 8)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete On Error GoTo 0 End With End Sub