excel VBA中出现运行时错误"1004“:应用程序定义或对象定义错误,怎么解决

资产表通过3、4、5列与设备表匹配PrivateSubCommandButton1_Click()Dimarr,brr,crrDimd,strDimi,mSetSh1=S... 资产表通过3、4、5列与设备表匹配

Private Sub CommandButton1_Click()
Dim arr, brr, crr
Dim d, str
Dim i, m
Set Sh1 = Sheets("资产表")
Set Sh2 = Sheets("设备表")
Set Sh3 = Sheets("结果")
Set d = CreateObject("scripting.dictionary")
With Sh1
arr = .Range("a2:e" & .Cells(.Rows.Count, 1).End(3).Row)
End With
With Sh2
brr = .Range("a2:e" & .Cells(.Rows.Count, 1).End(3).Row)
End With
ReDim crr(1 To 10000, 1 To 5)
For i = 1 To UBound(arr)
str = arr(i, 3) & "/" & arr(i, 4) & "/" & arr(i, 5)
If Not d.exists(str) Then
m = m + 1
d(str) = m
crr(m, 1) = arr(i, 1)
crr(m, 3) = arr(i, 3)
crr(m, 4) = arr(i, 4)
crr(m, 5) = arr(i, 5)
Else
crr(d(str), 1) = crr(d(str), 1) & "/" & arr(i, 1)
End If
Next
For i = 1 To UBound(brr)

str = brr(i, 3) & "/" & brr(i, 4) & "/" & brr(i, 5)
If d.exists(str) Then
If crr(d(str), 2) <> "" Then
crr(d(str), 2) = crr(d(str), 2) & "/" & brr(i, 1)
Else
crr(d(str), 2) = brr(i, 1)
End If
End If
Next
With Sh3
.Range("a2:e10000").ClearContents
.Columns("a").NumberFormatLocal = "@"
.Columns("d").NumberFormatLocal = "@"
.Columns("a").HorizontalAlignment = xlLeft
.Columns("b").HorizontalAlignment = xlLeft
.Range("a2").Resize(m, 5) = crr
End With
MsgBox "ok!"
Set d = Nothing
End Sub

出现运行时错误"1004“:应用程序定义或对象定义错误。
错误定位在 .Range("a2").Resize(m, 5) = crr
求大神解答
展开
 我来答
bcatv
2015-07-30 · TA获得超过4430个赞
知道大有可为答主
回答量:4762
采纳率:77%
帮助的人:567万
展开全部
.Range("a2").Resize(m, 5)这个是重新定义区域用的,不能值接给它赋值的
追问
那应该怎么改呢?谢谢!
追答
你是想要给这个区域赋同样的值,是不是这样呢?
你可以加一个循环,遍历一下这个区域中的每个单元格,各单元格分别赋值呗
百度网友5db5e02c6e
2015-07-30 · TA获得超过4979个赞
知道大有可为答主
回答量:1349
采纳率:0%
帮助的人:629万
展开全部
.Range("a2").Resize(UBound(crr), 5) = crr
好像可以这样
更多追问追答
追问
不行 还是1004
追答

我把你的代码弄过来,无数据执行是OK的,所以需要知道你的数据才好确定,可能的话邮箱发过来rufeng_00,是163的

 

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式