vba - 使用单元格引用作为自动形状线

标签 vba excel

有一个工作表,其中包含两列的单元格引用列表。

尝试创建一个宏,将它们拉入一个范围,并使用 A 列中的第一个单元格作为自动形状线的起点,使用 B 列中的第二个单元格作为自动形状线的终点。

脚本正在工作并执行我想要的操作,但是在执行结束时我收到“下标超出范围错误”

我做错了什么?

rng = Range("A1:B100")

Worksheets("Map").Activate

For Each row In rng

    i = i + 1

    ActiveSheet.Shapes.AddConnector(msoConnectorStraight, Range(rng(i, 1)).Left, Range(rng(i, 1)).Top, Range(rng(i, 2)).Left, Range(rng(i, 2)).Top).Select

Next row

最佳答案

避免选择和激活,声明所有变量并仅从范围内的行循环:

Sub TestMe()

    Dim rng As Range
    Set rng = Worksheets("Map").Range("A1:B100")

    Dim row As Range
    Dim i As Long

    For Each row In rng.Rows
        i = i + 1
        Worksheets("Map").Shapes.AddConnector msoConnectorStraight, _
            row.Cells(i, 1).Left, _
            row.Cells(i, 1).Top, _
            row.Cells(i, 2).Left, _
            row.Cells(i, 2).Top
    Next row

End Sub

关于vba - 使用单元格引用作为自动形状线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420102/

相关文章:

Excel VBA用函数替换但留下数字

python - 如何使用python(Anaconda)使用vba在指定的单元格位置将图片插入到Excel中

mysql - #在MS Access前端删除到MYSQL数据库

vba - 将名称从 Excel 插入 SQL Server 表 (VBA)

excel - Powerpoint VBA,For Each循环期间的形状删除跳过下一项

excel - 尝试根据标准将列中单元格的值移动到另一个

vba - 错误处理-仍然出现运行时错误框

vba - 更改图表中最后一个点的颜色

vba - 函数 "openfile"返回工作簿以运行时错误 '91' 结束

excel - 将交替公式插入同一列