繁体   English   中英

带For循环的Workbook_Open中的对象必需错误

[英]Object required error in Workbook_Open with For loop

***正在工作! 谢谢大家的帮助:D-结果是声明了range并将其设置为“ columnnrange”,并且for循环正在使用“ columnrange”。 这是小事;)。 感谢所有的有识之士和指导!

*感谢大家的帮助! 我已经根据响应更新了代码。 错误肯定在For循环运行时出现-如果已注释掉,则没有错误。 我相信错误是与范围“ columnrange”对象有关。 谢谢!!

我有一个简单的Workbook_Open()例程,该例程打开UserForm“ SelectData”并设置ComboBox“ DisplayData”值。 我有一个MsgBox ,用于确认在ComboBox“ DisplayData”中设置的值。
设置后,将隐藏用户窗体“ SelectData”。 然后,存在一个"for"循环来隐藏“ columnrange”范围内给定单元格不等于ComboBox值的所有列。 我遇到了“需要对象”错误,但终生无法弄清楚我要去哪里。 该电子表格的目标是:“打开”,允许用户筛选从SharePoint列表导出的excel文档上的可见列。
提前致谢!!

Private Sub Workbook_Open()

Dim columnrange As Range
Dim cell As Range

Set columnnrange = ActiveWorkbook.Worksheets("owssvr").Range("G1:Z1")

SelectData.Show

MsgBox (SelectData.DisplayData.Value)

For Each cell In columnrange
    If SelectData.DisplayData.Value <> cell Then
        cell.EntireColumn.Hidden = True
   Else
        cell.EntireColumn.Hidden = False
   End If
Next cell


End Sub

您将需要确保SelectData表单已打开。 您是否有“确定”或“关闭”按钮的代码? 如果您使用类似Me.Close东西,那么您将没有任何对象。 您可以改为使用Me.Hide

更改循环条件以验证单元格而不是columnrange 这是应该工作的简化代码。

For Each cell In columnrange    
    If SelectData.DisplayData.Value <> cell Then
        cell.EntireColumn.Hidden = True
    Else
        cell.EntireColumn.Hidden = False
    End If    
Next cell

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM