You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复VBA类型不匹配运行时错误'13'?

解决VBA代码运行时错误(报错行:point1 = Array(X1, Y1))

核心错误原因

Array()函数返回的是Variant类型数组,无法直接赋值给你声明的Double类型数组,这是导致运行时错误的直接原因。

修复方案

方案1:修改数组声明类型

将point1、point2、point3等数组的声明改为Variant类型,直接接收Array()的返回值:

Dim point1 As Variant
Dim point2 As Variant
Dim point3 As Variant

方案2:手动初始化Double数组并赋值

如果必须使用Double类型数组,需要先通过ReDim指定数组长度,再逐个赋值:

Dim point1() As Double
ReDim point1(1) ' 数组索引从0开始,2个元素对应X1、Y1
point1(0) = X1
point1(1) = Y1

其他需修复的潜在问题

  1. 未声明变量:Slo1、Slo2未声明,需添加声明语句:
    Dim Slo1 As Double, Slo2 As Double
    
  2. 多余的Transpose操作:FinalX、FinalY是单个Double值,不需要用Application.Transpose,直接赋值即可:
    Range("G3").Value = FinalX
    Range("G4").Value = FinalY
    
  3. 自定义函数依赖:确保Slope、Midpoint、Center这三个自定义函数已正确定义,且返回值类型与代码中的调用逻辑匹配(比如返回数组类型)。

修复后的完整代码示例

Sub Circles()
    Dim X1 As Double, Y1 As Double
    Dim X2 As Double, Y2 As Double
    Dim X3 As Double, Y3 As Double
    
    X1 = Range("C3").Value
    Y1 = Range("D3").Value
    X2 = Range("C4").Value
    Y2 = Range("D4").Value
    X3 = Range("C5").Value
    Y3 = Range("D5").Value
    
    ' 修改为Variant类型数组
    Dim point1 As Variant
    Dim point2 As Variant
    Dim point3 As Variant
    
    point1 = Array(X1, Y1)
    point2 = Array(X2, Y2)
    point3 = Array(X3, Y3)
    
    ' 补充变量声明
    Dim Slo1 As Double, Slo2 As Double
    Slo1 = Slope(point1, point2)
    Slo2 = Slope(point2, point3)
    
    Dim Mid1 As Variant
    Mid1 = Midpoint(point1, point2)
    Dim Mid2 As Variant
    Mid2 = Midpoint(point2, point3)
    
    Dim line1 As Variant
    line1 = Array(Mid1(0), Mid1(1), Slo1)
    Dim line2 As Variant
    line2 = Array(Mid2(0), Mid2(1), Slo2)
    
    Dim Final As Variant
    Final = Center(line1, line2)
    Dim FinalX As Double, FinalY As Double
    FinalX = Final(0)
    FinalY = Final(1)
    
    ' 移除多余的Transpose
    Range("G3").Value = FinalX
    Range("G4").Value = FinalY
End Sub

内容的提问来源于stack exchange,提问作者John Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:07:28