【发布时间】:2020-06-20 13:36:30
【问题描述】:
我想删除选定范围内的所有隐藏行。这里选择的范围是用户通过输入框选择的范围。在我的循环中,我从 LastRow 移动到 StartRow。 我在定义行时遇到问题,因为我希望 StartRow 成为该选定范围的第一行,而 LastRow 成为选定范围区域末尾的最后一行 代码给出了不匹配错误“13”。
我是 VBA 新手,可能在下面的代码中犯了一些愚蠢的错误。
Sub Delete_Hidden_Row()
Dim LastRow As Long
Dim StartRow As Long
Dim r As Long
Dim MyRange As range
Set MyRange = Application.InputBox(Prompt:="Select the first Cell (Hidden Rows in the region of the
selected cell will be deleted) ", _
Title:="Delete Hidden Rows", Type:=8)
StartRow = range(MyRange.Rows, MyRange.Columns).Rows.EntireRow
LastRow = range(MyRange.Rows, MyRange.Columns).CurrentRegion.Rows.Count + 1
For r = LastRow To StartRow
If Rows(r).Hidden = True Then
Rows(r).Delete
End If
Next r
【问题讨论】:
-
你尝试分配 range(..).Rows.EntireRow (它返回一个 Range 对象给 LastRow 这是一个 Long 数字,所以你有一个不匹配