首页 > 解决方案 > 基于其他列结构使用 VBA 控制(隐藏、显示)列

问题描述

我无法弄清楚 VBA 根据“模板”区域(C 到 G 列)设置(隐藏或显示)某个区域(K 到 O 列)中的列的正确逻辑。在下面的示例中,我隐藏了 D 列,我想运行一个代码来扫描 C3 到 G3 范围内的哪些列被隐藏或显示,并相应地(显示或隐藏列)编辑 K3 到 O3 范围内的列,其中在此示例中意味着隐藏列 L。我可以使用范围并可以出于我的目的进一步编辑代码,但我只是不知道如何以某种方式将列结构保存在模板中并将其复制到第二个区域中。另外,模板中会有公式,编辑区会有空值,但我想我可以自己做这个调整。我会很感激任何想法。

列示例

标签: excelvbahideshow

解决方案


请尝试下一个代码:

Sub testHideUnhide()
 Dim sh As Worksheet, rng As Range, cel As Range
 
 Set sh = ActiveSheet 'use here your sheet, if not the active one
 Set rng = sh.Range("C3:G3")
 For Each cel In rng.cells
    cel.Offset(0, 9).EntireColumn.Hidden = cel.EntireColumn.Hidden
 Next

从这个角度来看,它将根据“C:G”的情况隐藏和取消隐藏“K:O”中的列。


推荐阅读