微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据其他列结构使用VBA控制隐藏,显示列

如何解决根据其他列结构使用VBA控制隐藏,显示列

我无法为VBA根据“模板”区域(C至G列)设置(隐藏或显示)某些区域(K至O列)中的列的正确逻辑。 在下面的示例中,我隐藏了D列,我想运行一个代码来扫描隐藏或显示C3到G3范围内的哪些列,并相应地(显示或隐藏列)编辑K3到O3范围内的列,在此示例中表示隐藏列L。 我可以使用范围,并且可以根据自己的目的进一步编辑代码,但是我只是不知道如何以某种方式将列结构保存在模板中,然后在第二个区域中复制它。 此外,模板中将包含公式,而编辑区域中将包含null,但是我想我可以自己进行此调整。 我将不胜感激。

Example of columns

解决方法

请尝试下一个代码,

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”范围内隐藏和取消隐藏列。

,

隐藏带偏移的列

Option Explicit

Sub hideCols()
    
    Const src As String = "C:G"
    Const dst As String = "K:O"
   
    Dim n As Long
    For n = 1 To Columns(dst).Count
        Columns(dst).Columns(n).Hidden = Columns(src).Columns(n).Hidden
    Next n
    
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。