Excel VBA:对象'_Global'的方法'范围'在Excel中失败的错误

我遇到这个错误当我使用“Let SRange =”C“….”来代替时,它可以工作,但我不想像列举“NV”那样指定列的末尾。 我想评价者想使用FinalCol中的列。 查看代码可能会更容易一些。 我做了一些改变..但现在它要求“对象variables或块variables未设置”

Option Explicit Sub Range_End() Dim X As Variant, Count, FinalCol, SRange, XRange As Range Sheets("Formatted").Select X = InputBox("enter row number") Count = 1 Do While Cells(4, Count) <> Empty Count = Count + 1 Loop FinalCol = Count - 1 ' Let SRange = "C" & X & ":" & "NV" & X SRange = Range(Cells(X, 3), Cells(X, FinalCol)).Address Application.ScreenUpdating = False For Each XRange In Range(SRange) If XRange.Value = "" Then XRange.EntireColumn.Hidden = True Else XRange.EntireColumn.Hidden = False End If Next XRange Application.ScreenUpdating = True End Sub 

你可以试试这个,看看它是否有效? 如果它不能让我们知道哪一行错误,错误消息说什么

 Option Explicit Public Sub Range_End() Dim X As Variant Dim Count As Long, FinalCol As Long Dim SRange As Range, XRange As Range, HideRange As Range With Sheets("Formatted") .Activate X = InputBox("enter row number") Set SRange = .Range(Cells(X, 3), Cells(X, .Cells(4, .Columns.Count).End(xlToRight).Column)) End With Application.ScreenUpdating = False SRange.EntireColumn.Hidden = False For Each XRange In SRange If XRange.Value = vbNullString Then If HideRange Is Nothing Then Set HideRange = XRange Else Set HideRange = Union(HideRange, XRange) End If End If Next XRange If Not HideRange Is Nothing Then HideRange.EntireColumn.Hidden = True Application.ScreenUpdating = True End Sub