【发布时间】:2021-01-19 14:14:18
【问题描述】:
我正在尝试隐藏/取消隐藏多个文本框,具体取决于在数据透视表切片器上选择的内容;
如果选择 UK,则显示 TextBox 21 但隐藏 TextBox 22 和 TextBox 23 如果选择了 DE,则显示 TextBox 22 但隐藏 TextBox 21 和 TextBox 23 如果选择了 FR,则显示 TextBox 23,但隐藏 TextBox 21 和 TextBox 22
我尝试录制一个宏来获取对象的命名约定,然后编写了下面的 VBA 代码,但它不起作用。谁能告诉我哪里出错了(我使用的是 Excel 2019);
Sub Changetextbox()
If ActiveWorkbook.SlicerItems("UK").Selected = True Then
ActiveSheet.Shapes.Range(Array("TextBox 21")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("TextBox 22")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("TextBox 23")).Visible = msoFalse
If ActiveWorkbook.SlicerItems("DE").Selected = True Then
ActiveSheet.Shapes.Range(Array("TextBox 21")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("TextBox 22")).Visible = msoTrue
ActiveSheet.Shapes.Range(Array("TextBox 23")).Visible = msoFalse
If ActiveWorkbook.SlicerItems("FR").Selected = True Then
ActiveSheet.Shapes.Range(Array("TextBox 21")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("TextBox 22")).Visible = msoFalse
ActiveSheet.Shapes.Range(Array("TextBox 23")).Visible = msoTrue
End If
End Sub
任何帮助将不胜感激。 谢谢
【问题讨论】:
-
“不起作用”对于运行代码时发生的情况并不是非常有用的描述。突出的一件事是您的
If Then结构不正确:您有 3 个If并且只有一个End Ifdocs.microsoft.com/en-us/office/vba/language/concepts/…
标签: excel vba excel-2019