如果没有块,vba结束

我不断收到这个错误,但不知道为什么。 它看起来像所有的规则都遵循。

我读的结构如下 – If – > ElseIf – > End If。 但是在这里我得到了一个错误,尽pipe它们都是一样的。

Sub hide() Application.ScreenUpdating = False Dim wRange As Range Set wRange = Range("A5:B10") Dim mergedRows As Integer Dim mergedColumns As Integer Dim cellFirst As Range For Each cell In wRange If IsEmpty(cell) Then cell.EntireRow.Hidden = True ElseIf cell.MergeCells Then mergeRows = cell.MergeArea.Rows.Count mergeColumns = cell.MergeArea.Columns.Count With cell.MergeArea Set cellFirst = cell.MergeArea(Cells(1, 1)) If IsEmpty(cellFirst) Then cellFirst.EntireRow.Hidden = True End If End If Next End Sub 

你还需要closures你的With语句。

 With cell.MergeArea Set cellFirst = cell.MergeArea(Cells(1, 1)) If IsEmpty(cellFirst) Then cellFirst.EntireRow.Hidden = True End If End With