Excel 如何使用范围数组

Excel 如何使用范围数组,excel,vba,Excel,Vba,我需要为一系列范围设置边界 我就是这样做的: For n = 1 to record_num With ThisWorkbook.Sheets("Sheet1").Range("A" & (n-1)*3 + 1 & ":C" & (n-1)*3 + 2) With .Borders(xlEdgeLeft) .LineStyle = xlContinuous

我需要为一系列范围设置边界

我就是这样做的:

For n = 1 to record_num
    With ThisWorkbook.Sheets("Sheet1").Range("A" & (n-1)*3 + 1 & ":C" & (n-1)*3 + 2)
        With .Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ThemeColor = 6
            .TintAndShade = -0.499984740745262
            .Weight = xlThick
        End With
    ... some other border codes
    End With
Next n
因为。。。下一步总是很慢,我正在考虑将范围放入一个数组中,同时设置所有边界

With ThisWorkbook.Sheets("Sheet1")
    For n = 1 to record_num
        Set cellArray(i) = .Range("A" & (n-1)*3 + 1 & ":C" & (n-1)*3 + 2)
    Next i
End With
这个循环运行良好。然后,我尝试使用Cellray()执行
使用Range(Cellray())
使用ThisWorkbook.Sheets(“Sheet1”).Range(Cellray())
,它们都失败了,错误消息为“对象的方法”“范围”“全局”“失败”

正确的语法是什么?

使用偏移量格式化

选项显式
子格式WithOffset()
Dim记录的长度为
“例如。;
记录数量=5
变暗rng As范围
设置rng=ThisWorkbook.工作表(“Sheet1”).范围(“A1:C2”)
调光范围
长
对于n=1,记录\u num
如果不是tRng,那就什么都不是了
设置tRng=接头(tRng,rng.偏移量((n-1)*3))
其他的
设置tRng=rng
如果结束
下一个
如果不是tRng,那就什么都不是了
与tRng
带.边框(左)
.LineStyle=xlContinuous
.ThemeColor=6
.TintAndShade=-0.499984740745262
.重量=xl厚
以
以
如果结束
端接头

如果要对数组使用
With
,则需要逐个遍历数组的每个元素,因为
With
操作符仅对单个对象进行操作

这会将范围指定给光线

Dim cellarray(1 To 5) As Range
With ThisWorkbook.Sheets("Sheet1")
    For n = 1 To 5
        Set cellarray(n) = .Range("A" & (n - 1) * 3 + 1 & ":C" & (n - 1) * 3 + 2)
    Next n
End With
然后运行
ray
的元素,并将
一起使用以应用样式

For Each c In cellarray
    With c
        .Interior.ColorIndex = 12
    End With
Next c

我不确定我是否完全遵循了,但我认为您需要Union(rng1、rn2…)为什么要使用
For
循环?它是一个连续的范围,因此直接提到完整的范围。类似于此工作簿中的
。工作表(“Sheet1”)。范围(“A1:C”&record_num+2)。。。以
@Siddharth结束感谢您的收看。在尝试了这么多东西之后,我有点迷路了。@QHarr谢谢。你说得对。并集是个奇迹。但是为什么你要创建一个连续范围的并集呢?我在这里遗漏了什么吗?那么,与我原来的方法几乎没有区别。不能将数组视为单个对象吗?数组是单个对象,但数组往往没有许多属性,在您的情况下,它不是范围,因此它没有范围的属性-您需要访问单个范围元素才能访问属性。