Excel精英培训网

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

[已解决]怎么类型不匹配?

[复制链接]
发表于 2013-9-29 20:23 | 显示全部楼层 |阅读模式
本帖最后由 adadada 于 2013-9-29 22:40 编辑

怎么h4只有一个数据就会出现类型不匹配?
附件:
最佳答案
2013-9-29 20:41
改成
  1.     Arr = Range("h4:i" & [h65536].End(3).Row)
复制代码

附件.rar

10.6 KB, 下载次数: 7

发表于 2013-9-29 20:41 | 显示全部楼层
Arr = Range("h4:h" & [h65536].End(3).Row)

这里你的本意是要生成数组,可由于只有一个单元格,自然就是普通的变量了。
回复

使用道具 举报

发表于 2013-9-29 20:41 | 显示全部楼层    本楼为最佳答案   
改成
  1.     Arr = Range("h4:i" & [h65536].End(3).Row)
复制代码
回复

使用道具 举报

发表于 2013-9-29 20:45 | 显示全部楼层
本帖最后由 danio112 于 2013-9-29 20:52 编辑

因为只有一个数据的时候,arr=range("h4")了,这个时候arr只是一个range,不是数组形式,所以ubound(arr)就会报错了,ubound是针对数组使用的。
回复

使用道具 举报

 楼主| 发表于 2013-9-29 21:04 | 显示全部楼层
hwc2ycy 发表于 2013-9-29 20:41
改成

这样写行不行,h4 :i4 万一 i 列有数据,就把它添加进去了
回复

使用道具 举报

发表于 2013-9-29 21:06 | 显示全部楼层
adadada 发表于 2013-9-29 21:04
这样写行不行,h4 :i4 万一 i 列有数据,就把它添加进去了

直接试代码,用代码说话。

我只是借用I列来规避你现在的这种情况,并不会引用I列的数据。

回复

使用道具 举报

 楼主| 发表于 2013-9-29 22:00 | 显示全部楼层
hwc2ycy 发表于 2013-9-29 21:06
直接试代码,用代码说话。

我只是借用I列来规避你现在的这种情况,并不会引用I列的数据。

我试了I列数据没有引用,怎么回事,和哪个代码有关系
回复

使用道具 举报

发表于 2013-9-29 22:08 | 显示全部楼层
adadada 发表于 2013-9-29 22:00
我试了I列数据没有引用,怎么回事,和哪个代码有关系

没有引用不好嘛。
你本来就不需要用用到I列的数据。
代码中是有的数组(i,1)嘛。
回复

使用道具 举报

发表于 2013-9-29 23:03 | 显示全部楼层
理解万岁!
为何一定要用Ubound取得下标,有点兜圈子了?
  1. Sub yy()
  2. Dim Arr, i&, d As Object, iMaxRow&
  3. iMaxRow = [h65536].End(3).Row
  4. Set Arr = Range("h4:h" & iMaxRow)
  5. Set d = CreateObject("scripting.dictionary")
  6. For i = 1 To iMaxRow
  7.   If Arr(i, 1) <> "" Then d(Arr(i, 1)) = ""
  8. Next
  9. [m5] = ""
  10. [m5] = Join(d.keys, "+")
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2013-10-7 23:29 | 显示全部楼层
学习了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 10:51 , Processed in 0.286854 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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