Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA中的图形箭头超出范围_Excel_Vba - Fatal编程技术网

Excel VBA中的图形箭头超出范围

Excel VBA中的图形箭头超出范围,excel,vba,Excel,Vba,我试图在VBA中绘制一个错误作为较大宏的一部分,当我试图在70000多行的工作表上运行宏时,遇到了一个错误。代码在较小的文件上运行时没有错误,因此我怀疑这就是问题所在 下面是一个不运行的代码示例 xStart = 1661.625 yStart = 76.5 yEnd = 11126311 ActiveSheet.Shapes.AddConnector(msoConnectorStraight, xStart, yStart, xStart, yEnd).Select With Selectio

我试图在VBA中绘制一个错误作为较大宏的一部分,当我试图在70000多行的工作表上运行宏时,遇到了一个错误。代码在较小的文件上运行时没有错误,因此我怀疑这就是问题所在

下面是一个不运行的代码示例

xStart = 1661.625
yStart = 76.5
yEnd = 11126311
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, xStart, yStart, xStart, yEnd).Select
With Selection.ShapeRange.Line
    .EndArrowheadStyle = msoArrowheadTriangle
    .ForeColor.RGB = RGB(255, 0, 0)
End With
请注意,如果我去掉
yEnd
中的最后一个,使其成为
1112631
,则箭头绘制时不会出错


在图纸上绘图时,箭头对象的长度是否有限制?有人对此进行了改进吗?

您可以达到的最大高度是2348英寸,如下图所示

2348英寸
169056
点。您可以在Excel中通过在即时窗口中键入
?Application.InchesToPoints(2348)
来检查这一点。但是,您可以达到的最大分数是
169156

你可以试试这个代码

ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 100, 100, 100, 169156)
如果右键单击添加的形状,您将看到尺寸为2348英寸,如上面的屏幕截图所示。在
169157
,它将抛出一个错误。因此,要回答您的问题,
箭头对象的长度是否有限制…
,答案是
169156

强制执行代码以查找限制

Sub Sample()
    Dim shp As Shape
    Dim i As Long

    '~~> I started with 50000 instead of 169000
    '~~> The lower you go the more time it will take obviously
    For i = 169000 To 169158
        On Error Resume Next
        Set shp = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 100, 100, 100, i)
        If Err.Number <> 0 Then
            Debug.Print "Error at " & i
            Exit For
        Else
           shp.Delete
        End If
        On Error GoTo 0
    Next i
End Sub
子样本()
将shp变暗为形状
我想我会坚持多久
“~~>我从5万开始,而不是169000
“~~>你走得越低,显然需要的时间就越多
对于i=169000至169158
出错时继续下一步
设置shp=ActiveSheet.Shapes.AddConnector(msoConnectorStraight,100100i)
如果错误号为0,则
调试。打印“错误在”&i
退出
其他的
上海医药删除
如果结束
错误转到0
接下来我
端接头

Nice,有趣的事实;当我尝试手动进一步拉动形状时,它可以工作,但“属性”中的长度保持不变:SYes,如果在手动增加高度时通过绘图工具检查高度,高度将上升到
2348.52“
在这之后,它仍然是持续感谢响应,我认为有一个上限,但找不到相关文档。非常感谢!