Workbook_Open 中的对象必需错误与 For 循环
Object required error in Workbook_Open with For loop
***有效!!感谢大家的帮助 :D - 结果范围被声明并设置为 "columnnrange" 并且 for 循环正在使用 "columnrange"。这是小事 ;) 。感谢大家的见解和指导!
*感谢大家的帮助!我已经根据响应更新了代码。当 For 循环运行时肯定会出现错误 - 如果它被注释掉则没有错误。我相信错误与范围 "columnrange" 对象有关。谢谢!!
我有一个简单的 Workbook_Open()
例程,它打开用户窗体 "SelectData" 并设置组合框 "DisplayData" 值。我有一个 MsgBox
确认组合框 "DisplayData" 中设置的值。
设置后,用户窗体 "SelectData" 将被隐藏。然后,有一个 "for"
循环来隐藏范围 "columnrange" 中的给定单元格不等于 ComboBox 值的所有列。我遇到了一个错误 "object required",但我终究无法弄清楚哪里出错了。此电子表格的目标是:"on open",允许用户过滤从 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
.
更改循环条件以验证 cell 而不是 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
***有效!!感谢大家的帮助 :D - 结果范围被声明并设置为 "columnnrange" 并且 for 循环正在使用 "columnrange"。这是小事 ;) 。感谢大家的见解和指导!
*感谢大家的帮助!我已经根据响应更新了代码。当 For 循环运行时肯定会出现错误 - 如果它被注释掉则没有错误。我相信错误与范围 "columnrange" 对象有关。谢谢!!
我有一个简单的 Workbook_Open()
例程,它打开用户窗体 "SelectData" 并设置组合框 "DisplayData" 值。我有一个 MsgBox
确认组合框 "DisplayData" 中设置的值。
设置后,用户窗体 "SelectData" 将被隐藏。然后,有一个 "for"
循环来隐藏范围 "columnrange" 中的给定单元格不等于 ComboBox 值的所有列。我遇到了一个错误 "object required",但我终究无法弄清楚哪里出错了。此电子表格的目标是:"on open",允许用户过滤从 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
.
更改循环条件以验证 cell 而不是 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