Excel精英培训网

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

[已解决]数据类型不匹配!

[复制链接]
发表于 2011-9-4 12:28 | 显示全部楼层 |阅读模式
Sub 替换()
Dim arr, brr, j&, i&, k&
With Sheets("数据")
arr = .Range("a4:ap" & .[a65536].End(xlUp).Row)
End With
With Sheets("原始查询")
brr = .Range("a21:j" & .[a65536].End(xlUp).Row)
End With
For j = 1 To UBound(arr)
For i = 1 To UBound(brr)
If arr(j, 4) = brr(i, 10) And arr(j, 2) = brr(i, 1) And arr(j, 3) = brr(i, 2) Then
For k = 1 To 7
arr(j, k + 27) = brr(i, k + 4)
Next k
End If
Next i
Next j
With Sheets("数据")
.Range("A4").Resize(UBound(arr), UBound(arr, 2)) = arr
End With
End Sub
这是fjmxwrs版主,帮忙做的查询。但我引用其他工作表时会出现,数据不匹配。怎么回事!
源文件太大,无法上传!
最佳答案
2011-9-4 14:32
数据表的a4单元格为原点,向下扩展很多(数组arr的1维上界)行,向右扩展(数组arr的2维上界)列,即划定一个范围。然后,把arr里的值导出到这个范围。
发表于 2011-9-4 12:38 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2011-9-4 14:11 | 显示全部楼层
回复 windimi007 的帖子

现在好了,但是又出现新问题。只能复制一部分。不能复制全部。
回复

使用道具 举报

 楼主| 发表于 2011-9-4 14:14 | 显示全部楼层
.Range("A4").Resize(UBound(arr), UBound(arr, 2)) = arr
这句怎么理解
回复

使用道具 举报

发表于 2011-9-4 14:32 | 显示全部楼层    本楼为最佳答案   
数据表的a4单元格为原点,向下扩展很多(数组arr的1维上界)行,向右扩展(数组arr的2维上界)列,即划定一个范围。然后,把arr里的值导出到这个范围。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:14 , Processed in 0.359236 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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