【问题标题】:Macro to hide columns containing blanks隐藏包含空格的列的宏
【发布时间】:2020-06-14 10:30:31
【问题描述】:

我正在尝试编写一个 VBA 代码,它允许我隐藏包含从 excel 的下拉列表中选择的任何文本/选项的所有列。

例如,所有下拉列表选项都在 I:FT 列中。下拉列表包含“Cat”、“Dog”、“Horse”、“Fish”、“”

When it does hide the columns containing blanks, all rows in the column must be blank when the I:FT range is selected.这些单元的范围是 416R x 169C。

此外,我需要它来仅考虑可见行。我希望它能够过滤列(例如部件号)并运行宏,并且仅根据过滤后的部件号显示的内容隐藏带有空白的列。

下拉列表与单元格 H2 关联,并且该列表在后台的另一张纸上

我对编写 VBA 代码还很陌生,如果有任何帮助,我将不胜感激。

谢谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    要开始使用,请参阅最近回答的有关基于下拉框隐藏行的问题。您可以使用它来适应您自己的目的。

    Multiple Non-contiguous rows in excel Based on cell value

    如果列可能会不时更改顺序,那么对列号进行硬编码是不够的。在这种情况下,您可以使用几种方法来确保隐藏正确的列,这可以通过首先将列分配给命名范围来工作:

    • Worksheet.Range("CELL REFERENCE FOR 1st ROW").EntireColumn.Hidden = True
    • Worksheet.Columns("COLUMN REFERENCE").Hidden = True

    一旦你尝试过,但仍然卡住。回到这里,说明你的进展,并分享你迄今为止编写的 VBA 代码。

    【讨论】:

    • Sub Hide_blank_columns() Dim SearchWord As String Dim SearchColumn As Range Dim SearchResult As Range SearchWord = Range("h2").Value '下拉列表 i = Cells(Rows.Count, "i") .End(xlUp).Row j = Range("Ft" & 400).Column For x = 9 To j' 循环 clmn = Split(Cells(1, x).Address, "$")(1) 设置 SearchColumn = Range(clmn & "1:" & clmn & i) Set SearchResult = SearchColumn.Find(SearchWord, LookIn:=xlValues, lookat:=xlWhole) If Not SearchResult is Nothing Then Columns(x).Hidden = True Else End If Next结束子
    • 有人帮助创建了这个。它没有完全工作,但我认为它关闭了。它的问题是它隐藏了太多的列。它隐藏所有内容(包括那些不为空白的)
    • 你有一个好的开始。使用月份作为标题在基本模拟文件中运行您的代码。我在表格中留下了一些列完全空白。对我来说似乎工作得很好;隐藏每个完全空白的列。在您的原始帖子中,您说“当它确实隐藏包含空白的列时,选择i:ft范围时,列中的所有行必须为空白。 col A 带有标题和下面的几个空白单元格 = 被隐藏。 Col B 完全空白(甚至是标题)= 被隐藏。我是否正确解释了您的问题?表格(部分)的屏幕截图会很有用。
    • 我会定义帖子,但我似乎无法在这里弄清楚。我是一个新的溢出用户对不起大声笑。
    • 但是,我认为你正在做某事。更清楚地定义我试图完成的任务 - 我想用空格隐藏列,除非有一个值 >=1
    猜你喜欢
    • 1970-01-01
    • 2012-11-03
    • 2021-07-03
    • 2012-02-17
    • 2019-06-16
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多