Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4222|回复: 16

[已解决]为什么类型不匹配

[复制链接]
发表于 2010-10-21 11:23 | 显示全部楼层 |阅读模式


Sub cc()
    Dim x, y

    x = Array(1, 2, 3)
    y = Array(4, 5, 6)
    MsgBox x + y
   
End Sub

在msgbox这句设置中断,发现之前并无问题。

问题出在msgbox这句上。如题?

谢谢!

最佳答案
2010-10-21 12:09

vba中也可以用数组公式。

例如

Sub aa()
    x = [a1:a10*b1:b10]
    MsgBox x(10, 1)
End Sub

再比如10不确定

Sub bb()
    x = 10
    y = Application.Evaluate("a1:a" & x & " *b1:b" & x)
    MsgBox y(10, 1)
End Sub

发表于 2010-10-21 11:34 | 显示全部楼层

Sub cc()
    Dim x
    x = Array(1, 2, 3)
    MsgBox x
End Sub

这样就错了,因为msgbox后面只能是数组中的一个元素,而不能是整个数组。

应该这样

Sub cc()
    Dim x
    x = Array(1, 2, 3)
    MsgBox x(1)
End Sub

其次数组求和要用循环语句,或者利用sum

    MsgBox Application.WorksheetFunction.Sum(x, y)

回复

使用道具 举报

发表于 2010-10-21 11:36 | 显示全部楼层

MSGBOX 不能返回数组的结果,更别说数组相加了

回复

使用道具 举报

 楼主| 发表于 2010-10-21 11:46 | 显示全部楼层


Sub dd()
    Dim x, y, z()

    x = Array(1, 2, 3)
    y = Array(4, 5, 6)
    z = x + y
   
End Sub

为什么这样也不行[em09]

回复

使用道具 举报

发表于 2010-10-21 11:50 | 显示全部楼层

没人告诉你数组可以直接向加吧,如果能,相加规则呢?
回复

使用道具 举报

发表于 2010-10-21 11:56 | 显示全部楼层

VBA中数组是不能这样+的,方法我在2楼回复时已经说了。

如果你希望z的结果是{5,7,9},需要用循环语句加。

Sub dd()
    Dim x, y, z()

    x = Array(1, 2, 3)
    y = Array(4, 5, 6)
    ReDim z(3)
    For i = 0 To 2
        z(i) = x(i) + y(i)
    Next
    MsgBox z(0)
End Sub

回复

使用道具 举报

 楼主| 发表于 2010-10-21 11:58 | 显示全部楼层

所以这些惹出的麻烦,都是因为我想学习函数数组造成的 ...

函数数组与VBA数组,两者有多大区别啊

[em04]
回复

使用道具 举报

发表于 2010-10-21 12:09 | 显示全部楼层    本楼为最佳答案   

vba中也可以用数组公式。

例如

Sub aa()
    x = [a1:a10*b1:b10]
    MsgBox x(10, 1)
End Sub

再比如10不确定

Sub bb()
    x = 10
    y = Application.Evaluate("a1:a" & x & " *b1:b" & x)
    MsgBox y(10, 1)
End Sub

回复

使用道具 举报

发表于 2010-10-21 12:14 | 显示全部楼层

可以这样加:msgbox join([{1,2,3}+{4,5,6}], ",")

回复

使用道具 举报

 楼主| 发表于 2010-10-21 12:37 | 显示全部楼层

2,3楼,解释1楼错误为msgbox语法。我觉得只对了1部分,主要的另1部分没解释。

为此改为4楼。6,8,9楼是对特定要求的解法(后面再请教)。但仍没解释了主要的原因。对于4楼的错误为什么提示类型不匹配,是不是系统也解释不了,所以用“类型不匹配”随便敷衍了事?

本帖中,中括号的作用是什么?=Evaluate的作用吗

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-8 06:58 , Processed in 0.132201 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表