gpt4 book ai didi

excel - VBA代码根据另一个工作表的单元格输出隐藏/取消隐藏另一个工作表中的多行

转载 作者:行者123 更新时间:2023-12-04 20:32:06 30 4
gpt4 key购买 nike

我想对以下内容使用 VBA 代码:基于单元格输出(单元格 W20 中的“TRUE”或“FALSE”,根据用户是否选中复选框而变化),我希望隐藏/取消隐藏行根据下面的代码,在另一个名为“分析”工作表的工作表上。我右键单击单元格 W20 和复选框所在的“摘要”选项卡 -> 查看代码 -> 编写了下面的代码,但它不起作用。我对VBA很陌生,请帮助,非常感谢,在此先感谢

Sub Worksheet_Change(ByVal Target As Range)

Set Target = Range("$W$20")
If Target.Value = "FALSE" Then
Sheets("Analysis").Rows("54:55").EntireRow.Hidden = True
Else
Sheets("Analysis").Rows("54:55").EntireRow.Hidden = False
End If
If Target.Value = "FALSE" Then
Sheets("Analysis").Rows("94:95").EntireRow.Hidden = True
Else
Sheets("Analysis").Rows("94:95").EntireRow.Hidden = False
End If
If Target.Value = "FALSE" Then
Sheets("Analysis").Rows("134:135").EntireRow.Hidden = True
Else
Sheets("Analysis").Rows("134:135").EntireRow.Hidden = False
End If
End If
End Sub

最佳答案

Excel 无法识别由操作表单控件引起的单元格值修改。我认为这是因为 Excel 将表单控件链接到一个值并自行应用更改,因此不将其视为电子表格中的用户更改。

为了使您的代码正常工作,您必须将代码作为表单控件的单击事件移动到模块中。单击开发人员选项卡,然后单击 Visual Basic。打开 Visual Basic 后,您会注意到在左侧 Pane 中,您有一个 VBA 项目中的工作表列表,该列表带有您的工作簿的名称,并且您的宏当前位于其中之一中。找到它后,删除宏的代码。然后,右键单击工作簿的名称,然后选择插入 > 模块...

在编码 Pane 中,插入修改后的代码:

Sub NameOfYourFormControlCheckBox_Click()

Dim MyRange As Range
Set MyRange = Range("$W$20")

If MyRange = False Then
Sheets("Analysis").Rows("54:55").EntireRow.Hidden = True
ElseIf MyRange = True Then
Sheets("Analysis").Rows("54:55").EntireRow.Hidden = False
End If
End Sub

确保 sub 的名称是表单控件(复选框)的名称,后跟下划线,然后“单击”。

希望这可以帮助!

关于excel - VBA代码根据另一个工作表的单元格输出隐藏/取消隐藏另一个工作表中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48714018/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com