代码之家  ›  专栏  ›  技术社区  ›  Forward Ed

如何使用合并区域

  •  1
  • Forward Ed  · 技术社区  · 6 年前

    这是在一份声明中提出的 previous question 使用 MergeArea

    我正在修补一个数独游戏,并且正在寻找一种方法来轻松地解开/锁定原来的游戏,重置回原来的状态,将游戏清理干净,以此来练习我的VBA编程技能。

    Unlocked Puzz

    Locked Puzz

    Sub Lock_Puzz()
    
    Dim counter_x As Long
    Dim counter_y As Long
    Dim OriginalEntries As Range
    
        Sheet1.Unprotect ("")
    
        With Sheet1
            For counter_y = 3 To 27 Step 3
                For counter_x = 1 To 41 Step 5
                    If Sheet1.Cells(counter_y, counter_x) <> "" Then
                        Set OriginalEntries = Combine(OriginalEntries, .Range(.Cells(counter_y, counter_x), .Cells(counter_y, counter_x + 4)))
                    End If
                Next counter_x
            Next counter_y
        End With
    
        With OriginalEntries
            .Locked = True
            .Font.Color = -52429
            .Interior.ThemeColor = xlThemeColorDark1
            .Interior.TintAndShade = -4.99893185216834E-02
        End With
    
        Sheet1.Protect ("")
    
    End Sub
    

    这个 Combine 上一个问题 UNION 当其中一个范围为空时。

    Dim counter_x As Long
    Dim Entries As Range
    
        With Sheet1
            For counter_x = 3 To 27 Step 3
                Set Entries = Combine(Entries, .Range("A" & counter_x & ":AS" & counter_x))
            Next counter_x
        End With
    
        Sheet1.Unprotect ("")
        With Entries
            .Locked = False
            .Interior.ColorIndex = xlColorIndexNone
            .Font.ColorIndex = xlAutomatic
            If Clear_Contents Then
                .ClearContents
            End If
        End With
        Sheet1.Protect ("")
    

    由于这只是我在修修补补,并试图教自己如何使用VBA,有人可以修改其中一个代码来显示他们将如何使用VBA吗 合并区 . (或者自己写!)

    0 回复  |  直到 6 年前