excel - 仅在 ComboBox 中显示可见工作表
问题描述
我创建了以下 Excel 电子表格:
A B C D E
1 Sheet1
2 Sheet2
3 Sheet5
4 Sheet6
5 Sheet8
6 Sheet9
7
如您所见,Column A
我在 Excel 文件中列出了一些工作表。
现在,我使用下面的 VBA 将此列表放入 ComboBox:
Sub UserForm_Activate()
ComboBox1.List = Sheet1.Range("A1:A8").Value
End Sub
到目前为止,这一切都很好。
但是,现在可能会发生某些工作表不可见的情况。因此,我也不希望它们出现在ComboBox
.
我找到的一个解决方案是来自这里的答案。但是,此 VBA 仅适用于整个 Excel 文件,但正如您在我上面的列表中所见,某些工作表 ( Sheet3, Sheet4, Sheet7
) 已从列表中排除。无论它们是否可见,这些工作表也应保持排除在外。
因此,例如,当我使ComboBoxSheet2
中Sheet6
的列表不可见时,应自动调整并如下所示:
Sheet1
Sheet5
Sheet8
Sheet9
我需要在我的 VBA 中进行哪些更改才能实现此目的?
解决方案
基于链接的主题,我修改了答案中的代码以达到您想要实现的目标
Private Sub ChangeComboBox()
Dim xSheet As Worksheet
' Clear the combobox
ComboBox1.Clear
' Add the sheets again
For Each xSheet In ThisWorkbook.Sheets
'~~> Check if they are visible
If xSheet.Visible = xlSheetVisible Then
If xSheet.Name <> Sheet3.Name And xSheet.Name <> Sheet4.Name And xSheet.Name <> Sheet7.Name Then
ComboBox1.AddItem xSheet.Name
End If
End If
Next
End Sub
推荐阅读
- javascript - 两个条件的三元运算符
- json - Spring MVC:不以json格式读取Blob和float
- c# - 有人可以帮忙,当我们有“价值”并且我们不知道如何构成“价值”时该怎么办?
- html - 为什么我的代码中的 iframe src 没有加载任何页面并说页面拒绝连接?
- angular - Angular 12 - 根据模板中的值选择下拉选项
- python-3.x - 如何在 Pandas 数据框中使用公共键聚合字符串值?
- reactjs - 使用 Apollo-GraphQL、MongoDB-Mongoose 和 Node-Express 构建的 React 应用程序在生产构建中返回 404 错误
- c# - protobuf - 使用带有继承的 protobuf-net 进行序列化
- c# - WPF 中的 MVVM 模式是否允许在 XAML 中管理单击事件?
- javascript - treeview目录通过javascript获取路径