Excel VBA – 通过列重复macros

我在网上find了这个VBA代码。 代码是为了find特定的文本“Item”,然后删除具有文本“Item”的单元格和它下面的单元格。 代码的工作,但一次只有一个。 我正在处理的列有11,000个数据单元。 一次走一个会花太长的时间。 有没有人知道一个方法来采取这个代码,并通过一个运行整个列的工作? 这是代码。

Sub deleteCells() ' ' deleteCells Macro ' ' Keyboard Shortcut: Ctrl+s ' Dim StartRange As String Dim EndRange As String Cells.Find(What:="Item").Select StartRange = ActiveCell.Address Selection.Offset(1, 1).Select EndRange = ActiveCell.Address ActiveSheet.Range(StartRange & ":" & EndRange).Select Selection.Delete Shift:=xlUp End Sub 

提前致谢!

您正在删除使用.addressfind的单元格,以查找第一个查找不起作用。 只要继续寻找物品,直到你找不到它了。

 Option Explicit Sub deleteCells() Dim rng As Range, str As String On Error Resume Next str = "Item" With Worksheets("sheet1") Set rng = .Cells.Find(str) Do While Not rng Is Nothing rng.Resize(2, 2).Delete Shift:=xlUp Set rng = .Cells.Find(str) Loop End With End Sub 

您应该将更多参数应用于.Find操作。 VBA的.Find与工作表中的相同,并会inheritance用户使用的选项(又称参数)。

您还应该限制.Cells到您想要使用的列。 你认为这个问题不够重要,所以你可以把这个部分弄清楚。