gpt4 book ai didi

VBA Excel双如果

转载 作者:行者123 更新时间:2023-12-04 21:59:13 25 4
gpt4 key购买 nike

我在文档中有各种下拉菜单,需要创建一个双重条件语句。

所以我正在尝试执行以下操作:

If Cell B14 = Option 1 Then unhide Cells B16:B17
If Cells B17 = Yes Then hide Cells B19:B53
If Cells B17 = No Then show Cells B19:B34

所以如果有人选择 Option 1从下拉菜单中会出现另一个下拉菜单,如果他们选择 Yes从第二个开始隐藏所需的单元格,如果他们选择 No它取消隐藏所需的单元格。

第一个下拉菜单中的选项 2 和 3 不需要显示第二个下拉框。

除了双重 if 之外,我所有的一切都在工作。

当前代码是:
If Target.Address = "$B$14" Then

If Range("B14") = "Option 1: Travel Home" Then
ActiveSheet.Rows("16:35").EntireRow.Hidden = False
ActiveSheet.Rows("36:55").EntireRow.Hidden = True
ElseIf Range("B14") = "Option 2: Travel to next city" Then
ActiveSheet.Rows("15").EntireRow.Hidden = False
ActiveSheet.Rows("16:17").EntireRow.Hidden = True
ActiveSheet.Rows("19:35").EntireRow.Hidden = True
ActiveSheet.Rows("36").EntireRow.Hidden = False
ActiveSheet.Rows("37:55").EntireRow.Hidden = True
ElseIf Range("B14") = "Option 3: Make own arrangements" Then
ActiveSheet.Rows("15:36").EntireRow.Hidden = True
ActiveSheet.Rows("39:55").EntireRow.Hidden = False
End If

End If

选项 2 和 3 工作正常,只是选项 1 无法取消隐藏/隐藏必要的内容,然后还需要执行第二个下拉选项,该选项会改变显示的内容。

最佳答案

我测试了下面的代码,它似乎表现得如你所愿。我确实对结构进行了一些看似重大的更改,但我这样做是为了使其更易于阅读和维护。我认为我的编辑是不言自明的。

我还冒昧地假设这是一个 Worksheet_Change事件,即使您没有明确说明。

Private Sub Worksheet_Change(ByVal Target As Range)

Select Case Target.Address

Case Is = "$B$14"

Select Case Right(Left(Target.Value, 8), 1)

Case Is = 1 'Option 1

Me.Rows("16:17").EntireRow.Hidden = False

Case Is = 2 'Option 2

Me.Rows("15").EntireRow.Hidden = False
Me.Rows("16:17").EntireRow.Hidden = True
Me.Rows("19:35").EntireRow.Hidden = True
Me.Rows("36").EntireRow.Hidden = False
Me.Rows("37:55").EntireRow.Hidden = True

Case Is = 3 'Option 3

Me.Rows("15:36").EntireRow.Hidden = True
Me.Rows("39:55").EntireRow.Hidden = False

Case Else

Me.Rows("15:55").EntireRow.Hidden = True

End Select


Case Is = "$B$17"

Me.Range("B19:B35").EntireRow.Hidden = Not (Target.Value = "No")

End Select

End Sub

这是确保在打开工作簿时隐藏所有行的代码。
Private Sub Workbook_Open()

With Me.Worksheets("SheetName") ' change as needed
.Rows("1:3").EntireRow.Hidden = True
.Rows("15:55").EntireRow.Hidden = True
End With

End Sub

关于VBA Excel双如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228979/

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