使用可能的With语句将范围内的可见单元格转换为合并的单元格 Excel VBA

问题描述

我可以用以下方法制作with语句吗?

If ActiveSheet.Range("B17").EntireRow.Hidden = False Then
    If Range("C17").Value = "" Then
        With Range("C17:E17")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
        With Range("F17:G17")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
        With Range("H17:J17")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
    End If
End If
If ActiveSheet.Range("B18").EntireRow.Hidden = False Then
    If Range("C18").Value = "" Then
        With Range("C18:E18")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
        With Range("F18:G18")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
        With Range("H18:J18")
            .Locked = False
            .Merge
            .HorizontalAlignment = xlCenteracrossSelection
            .VerticalAlignment = xlCenter
        End With
    End If
End If

工作表上的范围是B17-B31,上面的代码在整个范围内都是相同的。

谢谢您的时间。

解决方法

你的意思是这样吗?

content.match(/^\#{6}\s(\w+\W+)+\?$/gm)

(您可以对列进行另一个嵌套的for循环,以使其合并以提高效率,但是只有3个块,仅保留它们就不会太烦人了)