Excel - 测试范围地址中的两个连续数字是否相同

Excel - Test if two consecutive digits in the range's address are the same

如果范围地址的数字部分可以除以 11,我想偏移范围。 (A11、A22、A33 等等)。

在给定的 sheet 中取一个范围,例如 Range("A2")。 我可以做...

        Dim isRng as Range
        Dim rngAddress as String
        Dim tstAddress as Integer, nsnAddress as Integer
 
        isRng = Range("A2")
        isRng.Select 
        rngAddress = isRng.Address

目前,rngAddress = $A$2(我认为)。那么,我可以...

        tstAddress = Right(rngAddress, 2)
        nsnAddress = Right(tstAddress, 1)

        If tstAddress / nsnAddress = 11 Then
             'whatever code
             Set isRng = ActiveCell.Offset(4,0).Select
        Else
        End If 

我希望它在达到 A11 或 A22 等任何范围后跳下 4 行。 这行得通吗?有更好的方法吗?非常感谢您的帮助。


整除:使用Mod

If cCell.Row Mod 11 = 0 Then
Option Explicit

Sub Divisible()
    
    Dim ws As Worksheet: Set ws = ActiveSheet ' improve!
    
    Dim rg As Range: Set rg = ws.Range("A2:A33")
    
    Dim cCell As Range
    Dim r As Long
    
    For Each cCell In rg.Cells
        r = r + 1
        If cCell.Row Mod 11 = 0 Then
            Debug.Print r, cCell.Offset(4).Address, "***"
        Else
            Debug.Print r, cCell.Address
        End If
    Next cCell
    
End Sub

这应该可以解决问题...

Sub sully_was_here()
    Dim r As Range
    
    Set r = [a22]
    With r
        .Select
        If .Row Mod 11 = 0 Then
            'whatever code here
            .Offset(4).Select
        End If
    End With
End Sub