level 1
Growthist📈
楼主
这么说吧,最近在做一个Excel表格,工程浩大。此工作簿包含30个工作表,每个工作表里都有很多表单对象,比如单选按钮和复选按钮,为了使单选按钮只对特定单元格生效,随即加入分组框(Groupbox)。
但是问题来了,分组框是有边框的,影响视觉观感。于是想办法将其隐藏,由于工作簿里有巨量的对象,分组框也很多,使用“查找和选择”里的手动隐藏对象方法太麻烦、太不现实,能累死人,而且以后想启用时又得重来一遍。
故而决定采用VBA代码解决,在网络上搜索下资料,我倒腾出了如下代码:
--------------------------------------------
Sub 遍历工作簿隐藏分组框线()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.Type = msoFormControl Then
If sh.FormControlType = xlGroupBox Then
sh.Visible = False
End If
End If
Next sh
Next ws
End Sub
----------------------------------------------
但是这串代码却只对单个活动工作表有效,并不能遍历整个工作簿,我也找不出原因。
请大神们指教

2017年11月05日 04点11分
1
但是问题来了,分组框是有边框的,影响视觉观感。于是想办法将其隐藏,由于工作簿里有巨量的对象,分组框也很多,使用“查找和选择”里的手动隐藏对象方法太麻烦、太不现实,能累死人,而且以后想启用时又得重来一遍。
故而决定采用VBA代码解决,在网络上搜索下资料,我倒腾出了如下代码:
--------------------------------------------
Sub 遍历工作簿隐藏分组框线()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.Type = msoFormControl Then
If sh.FormControlType = xlGroupBox Then
sh.Visible = False
End If
End If
Next sh
Next ws
End Sub
----------------------------------------------
但是这串代码却只对单个活动工作表有效,并不能遍历整个工作簿,我也找不出原因。
请大神们指教
