动态范围Excel VBA:您可以储存一个单元格范围,然后用范围函数再次调用它吗?

动态范围Excel VBA:您可以储存一个单元格范围,然后用范围函数再次调用它吗?,excel,vba,variables,range,Excel,Vba,Variables,Range,我尝试使用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

我尝试使用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向下开始的my range的垂直长度,my range的宽度是2个单元格(因此For循环偏移量中的2*i)

错误在这一行:

    Worksheets(3).Range(top_left & ":" & bottom_left).BorderAround ColorIndex:=1

我尝试过将范围转换为地址或字符串,但不起作用。有什么想法吗?

首先,您在行中写了“左下角”并有错误,但“左下角”不存在。我想你想写“右下角”,是吗

第二,“左上”和“右下”不像“A1”那样代表地址,它们包含值。不能将它们与“Range”(“)一起使用

请尝试以下方法:

        Worksheets(3).Range(top_left.Address & ":" & bottom_right.Address).BorderAround ColorIndex:=1

首先,你在一行中写了一个错误“bottom_left”,但“bottom_left”不存在。我想你是想写“bottom_right”,不是吗

第二,“左上角”和“右下角”不像“A1”那样表示地址,它们包含值。不能将它们与“范围”(“)一起使用

请尝试以下方法:

        Worksheets(3).Range(top_left.Address & ":" & bottom_right.Address).BorderAround ColorIndex:=1

工作表(3).范围(左上角地址和“:”&左下角地址)…
工作表(3).范围(左上角,左下角)…
尝试使用
范围(左上角,左下角)
除了您设置右下角但尝试使用左下角之外。将
选项显式
添加到模块顶部。
工作表(3).范围(左上角地址和“:”左下角地址)…
工作表(3).范围(左上角,左下角).
尝试使用
范围(左上角,左下角)
除了您
设置右下角
之外,您正在尝试使用
左下角
。将
选项显式
添加到模块顶部。谢谢!左下角确实是一个输入错误,我的意思是右下角。地址为“:”两个范围之间只有一个逗号都有效。:D谢谢!事实上,左下角是一个打字错误,我的意思是右下角。地址为“:”,两个范围之间只有一个逗号都有效。:D