我有以下代码,我试图根据另一个单元格的结果隐藏特定行。 (这个单元格中有一个公式,它将一系列其他单元格的结果连接成一个字母--A,B,C等。)
然而,我的代码中肯定存在问题,因为我无法使其工作 - 无论我对目标单元格的更改如何都没有任何变化。
这是我的代码 - 我正在使用Excel 2016,如果有任何相关的
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "G26" Then
Select Case Target.Value
Case "A": Rows("45:45,47,53:57,77:78").Hidden = True
Case "B": Rows("40:52,77, 78,80,,85").Hidden = True
Case "C": Rows("43,45,46,47,49,53:57,61:83").Hidden = True
Case "D": Rows("40:49,53:57,77,78,80").Hidden = True
Case "E": Rows("53:57").Hidden = True
Case "F": Rows("43,46,47,50:57").Hidden = True
Case "G": Rows("43,45:47,50:53").Hidden = True
Case "FG": Rows("43,46,47,50:57").Hidden = True
Case "H": Rows("41:42,44,45:57,77,78,80").Hidden = True
Case "I": Rows("40:49,53:57,77:78,80:82").Hidden = True
Case "HI": Rows("41:42,44,45:49,53:57,77,78,80").Hidden = True
Case "J": Rows("41:57,63,67,72,74:83").Hidden = True
Case "": Rows("40:85").Hidden = False
End Select
End If
End Sub
答案 0 :(得分:1)
使用Range().EntireRow.Hidden
代替Rows().Hidden
以允许您想要的格式的行列表
即。替换你的
Rows("xyz").Hidden = True
与
Range("xyz").EntireRow.Hidden = True
我在原始代码上使用find和replace来生成以下内容(注意我还删除了一个双逗号,在其中一行中) - 试试这个:
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "G26" Then
Select Case Target.Value
Case "A": Range("45:45,47:47,53:57,77:78").EntireRow.Hidden = True
Case "B": Range("40:52,77:78,80:80,85:85").EntireRow.Hidden = True
Case "C": Range("43:43,45:47,49:49,53:57,61:83").EntireRow.Hidden = True
Case "D": Range("40:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "E": Range("53:57").EntireRow.Hidden = True
Case "F": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "G": Range("43:43,45:47,50:53").EntireRow.Hidden = True
Case "FG": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "H": Range("41:42,44:57,77:78,80:80").EntireRow.Hidden = True
Case "I": Range("40:49,53:57,77:78,80:82").EntireRow.Hidden = True
Case "HI": Range("41:42,44:45:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "J": Range("41:57,63:63,67:67,72:72,74:83").EntireRow.Hidden = True
Case "": Range("40:85").EntireRow.Hidden = False
End Select
End If
End Sub
更新的答案
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range("G26").Value
Case "A": Range("45:45,47:47,53:57,77:78").EntireRow.Hidden = True
Case "B": Range("40:52,77:78,80:80,85:85").EntireRow.Hidden = True
Case "C": Range("43:43,45:47,49:49,53:57,61:83").EntireRow.Hidden = True
Case "D": Range("40:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "E": Range("53:57").EntireRow.Hidden = True
Case "F": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "G": Range("43:43,45:47,50:53").EntireRow.Hidden = True
Case "FG": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "H": Range("41:42,44:57,77:78,80:80").EntireRow.Hidden = True
Case "I": Range("40:49,53:57,77:78,80:82").EntireRow.Hidden = True
Case "HI": Range("41:42,44:45:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "J": Range("41:57,63:63,67:67,72:72,74:83").EntireRow.Hidden = True
Case "": Range("40:85").EntireRow.Hidden = False
End Select
End Sub
答案 1 :(得分:0)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = "D25" Then
Select Case Target.Value
Case "Select as appropriate": Range("40:85").EntireRow.Hidden = False
Case "USA - Breen Road": Range("45:45,47:47,53:57,77:78").EntireRow.Hidden = True
Case "USA - Conroe": Range("40:52,77:78,80:80,85:85").EntireRow.Hidden = True
Case "USA - Lafayette": Range("43:43,45:47,49:49,53:57,61:83").EntireRow.Hidden = True
Case "Europe - Aberdeen": Range("40:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "Europe - Gateshead": Range("53:57").EntireRow.Hidden = True
Case "Middle East - Dubai": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "Middle East - Saudi Arabia": Range("43:43,45:47,50:53").EntireRow.Hidden = True
Case "middle East - All": Range("43:43,46:47,50:57").EntireRow.Hidden = True
Case "Far East - Singapore - Loyang": Range("41:42,44:57,77:78,80:80").EntireRow.Hidden = True
Case "Far East - Singapore - Tuas": Range("40:49,53:57,77:78,80:82").EntireRow.Hidden = True
Case "Far East - Singapore - All": Range("41:42,44:45:49,53:57,77:78,80:80").EntireRow.Hidden = True
Case "Far East - Perth - Australia": Range("41:57,63:63,67:67,72:72,74:83").EntireRow.Hidden = True
End Select
End If
End Sub