我要作出这样的清除细胞在蓝色边框(〜40.000行)的内容宏当细胞在红边框(列AX)包含文本“NoBO”(=无延期)而不会丢失列AP:AX中的公式。
Sub clear_ranges()
Dim ws As Worksheet
Dim x As Integer
Dim clearRng As Range
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets("Input")
For x = 6 To ws.Range("B" & Rows.Count).End(xlUp).Row
If (ws.Range("AX6" & x).Value = "NoBO") Then
If clearRng Is Nothing Then
Set clearRng = ws.Range("B6" & x & ":" & "AN6" & x)
Else
Set clearRng = Application.Union(clearRng, ws.Range("B6" & x & ":" & "AN6" & x))
End If
End If
Next x
clearRng.Clear
End Sub
,由于某种原因:
For x = 6 To ws.Range("B" & Rows.Count).End(xlUp).Row
给了我一个错误 “溢出”。搜索后,我知道这个错误意味着什么,但我找不到解决方案。
tl; dr - 我想删除范围B6:B #####(直到最后一行)到AN6:AN #### *(直到最后一行)如果单元格AX ##### containts NOBO
x是一个Integer,只能保存32,767的值,所以如果你的数据超出了那个行,它就会溢出x的最大值。正如加里的回答所述 - 将其改为“龙”,无论如何它都更有效率。 –
谢谢,我会试试 – Bluesector