VBA中的区域如何动态设定
WITH XLSHEET
.RANGE("A8:BR8").FONT.SIZE = 10
END WITH
现想将其中的"A","8","BR"用变量替代,不会写了,用CELLS的也不会,求教了!!
还有,想固定前面的N行作为标题栏,该如何写呢?

解决方案 »

  1.   

    VBA中的区域如何动态设定
    现想将其中的"A","8","BR"用变量替代,不会写了,用CELLS的也不会,求教了!!
    还有,想固定前面的N行作为标题栏,该如何写呢?
    '*********************************
    DIM CellStr as string 
    DIM CELLS AS STRING
    DIM CELLE AS STRING
      CELLS="A": CELLE="B"
      CELLSTR=CELLS & "8" & ":" &  CELLE & "8" 
      WITH XLSHEET
         .RANGE(CELLSTR).FONT.SIZE = 10
      END WITH
      

  2.   

    楼上正解。不过如果列数超过 26,excel 的表示方法变成“AA...AZ,BA...BZ”的形式,则需要转换一下。我刚碰到这问题,提供一个现成的函数:'转换数值成 Excel 列名
    Private Function Num2Chr(ByVal numVal As Integer) As String
        Dim c1 As String, c2 As String, i As Integer, j As Integer
        
        i = numVal Mod 26
        j = numVal \ 26
        
        If i = 0 Then j = j - 1
        If j > 0 Then c1 = Chr(j + 64)
        
        c2 = Chr(IIf(i = 0, 26, i) + 64)
        
        Num2Chr = c1 & c2
    End Function