Tag: 删除行

在Excel中删除增量行

我有一个24小时的全年,每天之间有3个不必要的行(24小时行)的小时数据。 我想删除所有这些不必要的行。 我目前的方法是增加24个空格,删除3行,然后循环回到24个空间增量,直到最后一行(lRow)的值<1,在这种情况下循环将停止。 请参阅下面的我的当前代码: Sub Delete_Rows() Dim lRow lRow = 9468 Do While lRow >= 1 lRow = lRow – 24 Sheets("Sheet 1").Rows(lRow).Delete lRow = lRow – 1 Sheets("Sheet 1").Rows(lRow).Delete lRow = lRow – 1 Sheets("Sheet 1").Rows(lRow).Delete Loop End Sub 但是,我一直在这一行上得到运行时错误:1004: Sheets("Sheet 1").Rows(lRow).Delete 我不明白这是为什么,任何帮助或替代方法来实现这个目标,我们感激。

删除第一列以外的空白行

我写了一个macros来删除该行,如果它是一个空行,或者如果在B列中单元格包含stringXYZ。 但是,如果有200多行数据,则此macros可能需要几分钟才能运行。 任何人都可以提供更有效的VBA格式? Sub DeleteBlanks() Dim lr As Long, r As Long For r = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1 Range("B" & r).Replace "*XYZ*", "", xlWhole If Range("B" & r).Value = "" Then Range("B" & r & ":Q" & r).Delete (xlShiftUp) End If Next r Application.ScreenUpdating = False End Sub

在条件上删除整行不能处理400,000行

我有这个macros来删除那些不是“chr9”的整个行。 我总共有401,094行。 它似乎编译好,但我的Excel冻结,我必须强制退出。 我认为这可能是一个低效率的algorithm,或者可能是代码中的错误? Sub deleteNonChr9() Dim lastrow As Long Dim firstrow As Long Dim i As Long lastrow = 401094 firstrow = 0 ' Increment bottom of sheet to upwards For i = lastrow To firstrow Step -1 If (Range("C1").Offset(i, 0) <> "chr9") Then Range("C1").Offset(i, 0).EntireRow.Delete End If Next i End Sub

如何解决excel-vba中的错误400

我正在写一个excel-vba来查找和删除整行,如果有空白单元格在一个特定的列。 我的macros工作正常,如果至less有一个空白单元格,但如果没有空白单元格显示错误400。 我的代码是 Sub GPF_Sign() Dim i As Integer, n as integer Dim LROW As Long LROW = Sheets("GPF").Range("B200").End(xlUp).Row n = Range("D9:D" & LROW).SpecialCells(xlCellTypeBlanks).Cells.Count If n > 0 Then Range("D9:D" & LROW).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End If End Sub

Excel自动化C#:如何删除多行?

我有下面的代码,它不删除行,它要求我保存在当前的工作簿上,但没有保存和EXCEL.EXE继续在任务pipe理器中运行: protected void OpenExcelWorkbook(string fileName) { _app = new Excel.Application(); if (_book == null) { _books = _app.Workbooks; _book = _books.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); _sheets = _book.Worksheets; } } protected void CloseExcelWorkbook() { _book.Save(); _book.Close(false, Type.Missing, false); } protected void NAR(object o) { try […]

循环遍历ListObject中的行来删除它们是非常缓慢的

我有一个〜500行的ListObject表,我也有一个命名的范围内的4个值。 对于500行,可能会重复(随机)出现30个唯一值,我想删除其值不在指定范围内的所有行。 我有以下的工作,但它比预期的运行速度慢(约2分钟): Sub removeAccounts() Dim tbl As ListObject Dim i As Integer Set tbl = ThisWorkbook.Sheets("TheSheet").ListObjects("TheTable") i = tbl.ListRows.Count While i > 0 If Application.WorksheetFunction.CountIf(Range("Included_Rows"), tbl.ListRows(i).Range.Cells(1).Value) = 0 Then tbl.ListRows(i).Delete End If i = i – 1 Wend End Sub 我不确定是对工作表函数的依赖,还是只是循环放慢行速度。 有没有办法来过滤listobject并放弃其余的? 我正在考虑只是夹一个进度条,让用户可以看到发生的事情…

Excel VBA:如果列A中的单元格为空,则删除整行(长数据集)

我试图删除在长数据集中的列A中有空单元格的所有行(在Excel中超过60 000行) 我有一个VBA代码,当我有更less的aprox 32 000单元时效果很好: Sub DelBlankRows() Columns("A:A").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete End Sub 有人知道一种方式,以便它在大量的行上工作吗? 谢谢