Excel VBA删除行有时,当您使用多个电子表格时,您可能希望删除一些行,因为它们是空白的,复制或否则不再需要。Excel VBA是一种强大的编程语言,使我们能够轻松地删除行。或者这一事件,轻松自动化任何重复任务。我们将通过如何使用VBA自动化Excel中的删除行。我们假设您熟悉MS Excel VBA的基础知识。

如果你是Excel VBA的新手,我们建议你先在Excel VBA上获取这门基本课程, 也许,用这个VBA教程刷新基本概念

对于我们在本教程中使用的所有示例,这里有一些通用说明:

  1. 首先打开现有的Excel工作簿,具有数据。
  2. 同时按Alt + F11,将打开VBA编辑器。
  3. 然后使用“插入”菜单插入模块。
  4. 要尝试这些示例,请将本教程中给出的代码复制并粘贴到代码窗口中。或者,您可以手动键入代码。
  5. 最后,将文件保存为宏。

要执行代码,请按F5功能键。现在让我们继续删除Excel中行的实际方面。

使用Excel VBA删除特定行

子deleterow1()行(10).delete结束子

在此程序中,第10行已从活动工作表完全删除。子程序的名称是deleterow1()。行(10)是指行号10.它具有关联的函数删除,当执行完全删除相关行时。

使用Excel VBA删除多行

子Deleterow2()行(“10:20”)。删除结束子子

编写此代码以从行号10到20中删除多行。行(“10:20”)指从第10到20行开始的行范围。下一步让我们使用条件语句和循环移动到更多高级程序。

使用Excel VBA的某些条件删除行

子deleterow3()暗淡lrow = 100在lrow> = 1如果单元格(lrow,1)mod 3 = 0那么行(lrow).delete lrow = lrow  -  1环端子子

在此程序中,我们使用暗淡关键字声明变量lrow,引用最后一行。lRow is assigned the value 100. Then we use the ‘Do While’ loop to iterate through the rows starting from row number 100 backwards to row number 1. In each loop, the value at cell with row number equal to lRow and Column 1 is divided by 3. If it’s completely divisible by three, that row is entirely deleted. Next we decrement lRow by 1. We loop on this till the condition evaluates to false.

删除单元格类型为字符串的整行

子DeletERow4()将Cell_Search为Range,Del为Ronge Set RNG =相交(范围(“A1:C20”),ActiveSheet.USERANGE)在RNG中的每个单元(Cell_Search.Value)=“Apple”=“Apple”,即可(“A1:C20”),ActiveSheet.USEdrange)。如果del是没有,那么设置del = cell_search else:set del = Union(del,cell_search)结束如果下一个cell_seare resume resume refume下一个del.entirerow.delete结束子

在此程序中,我们声明了三个数据类型范围的变量。这里的范围(“A1:C20”),返回所选单元格范围。ActiveSheet.ustrange.指所选的工作表。交叉函数返回存储在变量RNG中的范围对象。我们使用“for循环”来迭代细胞。在此程序中,当单元格值等于“Apple”时,我们将Del作为单元格对象分配。如果该值不等于“Apple”,则Union函数用于Unite Cell_Search联合。del.entirerow.delete将删除具有del对象的行。

在Excel中使用VBA删除工作表中的每个第三行

Sub DeleteRow5() Dim X,Y X = 1 Y = 1 Set Rng1 = Selection For xCounter = 1 To Rng1.Rows.Count If Y = 3 Then Rng1.Cells(x).EntireRow.Delete Y = 1 Else X = X + 1 Y = Y + 1 End If Next xCounter

在此程序中,我们声明了两个变量x和y。值1分配给变量。'for'循环从值1到电子表格选择中的行总数。x和y递增1,每当y不等于3时,y等于3时,删除当前行,y重置为1.此过程达到达到最后一行的最后行。

如何在Excel中使用VBA删除重复行

现在我们继续前进到更复杂的程序,这需要大量的数据。请注意,您需要熟悉应用程序对象及其重要函数和数据成员。需要对成员数据和成员函数的知识是掌握此代码所必需的。如果这听起来像拉丁语,休息一下跳到我们终极的VBA课程了解有关此内容的更多信息。

Sub DeletEduplicaterS6()DIM R1作为长DIM N1作为LONG DIM v1作为变体暗rng1作为误差on endmacro application.screenupdating = false anation.calculation = xlcalculationmanual set rng1 = application.intersect(activeSheet.ustrange,_ activeSheet.columns(ActiveCell.Column))application.statusbar =“处理行:”&format(rng.row,“#,## 0”)n1 = 0对于r1 = rng1.rows.count到2步骤-1如果r1 mod 500 =0然后application.statusBar =“处理行:”&格式(r1,“#,## 0”)结束如果v1 = rng1.cells(r1,1).value如果v1 = vbnullstring,则if application.worksheetfunction.count(rng1.columns(1),vbnullstring)> 1然后rng1.rows(r1).entirerow.delete n 1 = n1 + 1结束如果application.worksheetfunction.countif(rng1.columns(1),v1)> 1那么rng1.rows(r1).entireerow.delete n1 = n1 + 1结束如果结束如果下一个r1 endmacro:application.statusbar = false应用程序.screenupdating = true application.calculation = xlcalculationautom msgbox“重复的行删除:”&cstr(n1)结束子

在此程序中,我们将R1,N1,V1和RNG1声明为变量。计算模式设置为手动,屏幕扫描状态设置为FALSE。vbnullstring常量表示与字符串的空指针。它代表空字符串。如果具有相同内容的行的计数是多于一个的,换句话说,如果我们有重复的行,则删除一行。N1递增1,行也递增。执行此循环,直到删除所有重复行。Msgbox()用于返回删除的重复行数,该重排存储在变量N1中。CSTR()将值转换为字符串。请注意,在程序结束时,计算模式将被设置为自动,并且屏幕扫描状态设置为TRUE。

如果您知道基础知识,VBA很有趣。希望本教程给了你一个很好的背景。在任何时候,如果您想了解更多,请随意用mrexce弯曲一些vba肌肉l,或者使用这两级课程更深入Excel VBA世界(基本的先进的)。

Excel VBA的顶级课程

解锁Excel VBA和Excel宏
Leila Gharani.
4.7 (26,880)
畅销书
Microsoft Excel Macros和Excel VBA硕士
凯尔·佩
4.5 (11,690)
畅销书
Excel Macros和VBA为初学者
Bluelime学习解决方案
4.2 (19)
热和新的
使用Excel VBA完成Web自动化
丹尼尔强
4.8 (738)
畅销书
Excel VBA宏:超消歧Excel VBA编程
格兰特赌博
4.4 (989)
畅销书
终极Excel VBA.
马克塔尔伯特
4.7 (3,205)
Excel VBA编程 - 完整指南
Boris Paskhaver.
4.6 (3,736)
Microsoft Excel VBA简介
凯尔·佩
4.6 (1,161)
Excel Macros&Excel VBA编程为初学者编程
andreas exadaktylos.
4.5 (856)
收视率最高
Excel与Microsoft Excel VBA用户表单
凯尔·佩
4.5 (1,186)

更多Excel VBA课程

Excel VBA学生还学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示