【发布时间】:2019-11-18 22:28:07
【问题描述】:
我正在尝试使用 for 循环在我的电子表格中的一系列范围周围绘制边框,但范围的大小存储在变量中。这是我的代码:
For i = 0 To 19
Dim top_left, bottom_right As Range
Set top_left = Range("G4").Offset(0, 2 * i)
Set bottom_right = Range("H" & size).Offset(0, 2 * i)
Worksheets(3).Range(top_left & ":" & bottom_left).BorderAround ColorIndex:=1
Next
size 是从单元格 G4 向下开始的范围的垂直长度,范围的宽度是 2 个单元格(因此是 For 循环偏移量中的 2*i)。
错误在这一行:
Worksheets(3).Range(top_left & ":" & bottom_left).BorderAround ColorIndex:=1
我尝试将范围转换为地址或字符串,但它不起作用。有什么想法吗?
【问题讨论】:
-
Worksheets(3).Range(top_left.Address & ":" & bottom_left.Address)....或Worksheets(3).Range(top_left, bottom_left)... -
尝试使用
Range(top_left, bottom_left) -
除了你
Set bottom_right,但正在尝试使用bottom_left。在模块顶部添加Option Explicit。