arrays - 为什么我在使用数组函数时会报错
问题描述
我测试了这个 Autocad VBA 例程。有效。没问题。
Sub Add_Line_1()
Dim n1(2) As Double, n2(2) As Double
Dim r As AcadLine
n1(0) = 100
n1(1) = 150
n2(0) = 220
n2(1) = 230
Set r = ThisDrawing.ModelSpace.AddLine(n1, n2)
End Sub
但。我想使用Array
功能。它没有用。发生错误。
运行时错误 5:无效的过程调用或参数
Sub Add_Line_2()
Dim n1 As Variant, n2 As Variant
Dim r As AcadLine
n1 = Array(100#, 150#)
n2 = Array(220#, 230#)
' ERROR LINE.
Set r = ThisDrawing.ModelSpace.AddLine(n1, n2)
End Sub
如何Array
在这段代码中使用函数?
编辑: 我尝试了这段代码,但再次出错
编译错误。无法分配给数组
Sub Add_Line_3()
Dim n1(2) As Double, n2(2) As Double
Dim r As AcadLine
n1 = Array(100#, 150#, 0#) 'ERROR LINE
n2 = Array(220#, 230#, 0#)
Set r = ThisDrawing.ModelSpace.AddLine(n1, n2)
End Sub
解决方案
如果只是为了简化代码,您可以使用辅助函数。
假设我们谈论的是 2D/3D 空间中的一个点,我们可以定义:
Function Point(x As Double, y As Double, Optional z As Double = 0) As Double()
ReDim temp(2) As Double
temp(0) = x
temp(1) = y
temp(2) = z
Point = temp
End Function
并使用
ThisDrawing.ModelSpace.AddLine(Point(100, 150), Point(220, 230))
推荐阅读
- c - 尝试将 fmemopen 文件描述符与标准输入关联时出现错误的文件描述符错误
- git - 你如何删除/取消设置 GIT_EDITOR 变量
- security - 您可以将散列密码以纯文本形式发回给用户吗?
- terraform - Terraform 中单个字符串中的多个输出
- powershell - PowerShell ISE:如何运行新的 PowerShell 版本
- java - 从文件夹spring boot加载文件
- python-3.x - 在 Webdriver 的不同实例中维护 Session
- python - 字典中的唯一组合值
- rest - 一对一资源的 REST 端点应该是什么?
- html - 引导标签和输入字段对齐问题