【问题标题】:Hiding various rows based on 10+ options on drop down menu根据下拉菜单上的 10 多个选项隐藏各种行
【发布时间】:2021-06-19 13:13:10
【问题描述】:

我有一个将数据提取到“摘要”页面的文件。我希望能够根据单元格“C4”的输入隐藏某些行。单元格 C4 有一个下拉菜单,可以选择多个不同的产品信息。例如,C4 下拉列表中的第一个输入包含第 8-32 行的信息。其他的有时只有第 8-12、8-17、8-24 行等的信息。

目前我的代码是这个... Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("C4"), Target) Is Nothing And Target.Cells.Count = 1 Then
    Rows("12:31").Hidden = False
    
    Select Case Target.Value
        Case "Transaction Mail", "PPC Material Handling"
        Rows("12:31").Hidden = False
        Case "Parcels"
            Rows("27:31").Hidden = True
        Case "VEO", "Packets", "PIF Packets", "Admail"
            Rows("17:31").Hidden = True
        Case "PIF Material Handling", "IRU", "RVU", "PPC Others"
            Rows("12:31").Hidden = True
                      
        Case Else
      
       
       
    End Select
End If

结束子

由于某种原因,此代码将取消隐藏“事务邮件”的所有内容并隐藏“VEO”的正确行,这是完美的,但输入到 C4 单元格的所有其他变量都不会。

我是否仅限于 2 个变量?我应该制作多个宏并让 1 个宏基本上根据单元格 C4 激活它们吗?

【问题讨论】:

  • Next 不会关闭 If.... End If 会,对于初学者来说。
  • 删除On Error Resume Nexts 因为那些只是隐藏潜在的错误。
  • 确保下拉列表中没有空格或其他不可打印的字符,这些字符不在您选择的大小写输入值中。
  • 而且您应该附加未替换您的旧问题。
  • 是的,对不起,伙计要删除旧的东西。是的,我已经三次检查了下拉菜单中的空格,即使我们输入了它,它的奇怪原因索引和 aggerate 函数在同一个输入单元格中工作,并且完美地工作它只是用宏隐藏单元格,这仍然是问题。我不知道为什么“交易邮件”和“VEO”会起作用,而其他的却不起作用。非常令人沮丧

标签: excel vba


【解决方案1】:

@scott Craner 是解决这个问题的人。有效的代码是......

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("$C$4"), Target) Is Nothing And Target.Cells.Count = 1 Then
    Rows("12:31").Hidden = False
    
    Select Case Target.Value
        Case "Transaction Mail", "PPC Material Handling"
        Rows("12:31").Hidden = False

        
        Case "Parcels"
            Rows("27:31").Hidden = True
  
        
        Case "VEO", "Packets", "PIF Packets", "Admail"
            Rows("17:31").Hidden = True

        
        Case "PIF Material Handling", "IRU", "RVU", "PPC Others"
            Rows("12:31").Hidden = True
        Case Else
End Select
End If
End Sub`

之前它对我不起作用的原因是宏工作表中的间距。由于某些原因,它没有捕捉到它,这里和那里也有一个错字。学过的知识。如果看起来正确的代码存在问题,则可能是语法/错别字。再次感谢@scott Craner。图例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2017-10-06
    • 2015-09-19
    • 1970-01-01
    相关资源
    最近更新 更多