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谢谢。你说得对。并集是个奇迹。但是为什么你要创建一个连续范围的并集呢?我在这里遗漏了什么吗?那么,与我原来的方法几乎没有区别。不能将数组视为单个对象吗?数组是单个对象,但数组往往没有许多属性,在您的情况下,它不是范围,因此它没有范围的属性-您需要访问单个范围元素才能访问属性。