Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 171|回复: 21

[求助] VBA代码修改后出现这样的错误

[复制链接]
发表于 2017-12-5 14:16 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
我把代码修改后出现这样的错误,请高手帮忙纠正一下代码的错误原因
QQ图片20171205141224.png

代码运行错误.rar

151.24 KB, 下载次数: 11

发表于 2017-12-5 15:02 | 显示全部楼层
Private Sub CommandButton1_Click()
Dim T As Date
T = Timer
Dim strPath As String, d, d1, d2, d3 As Object, arr, brr, crr, drr, i As Long, n As Long, shnm
Application.ScreenUpdating = False
Application.DisplayAlerts = False
strPath = Application.GetOpenFilename("Excel Files(*.xls;*.xlsx),*.*", , "请选择文件")
If Len(Dir(strPath)) = 0 Then Exit Sub
Set d = CreateObject("scripting.dictionary")
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
  With ActiveWorkbook.Worksheets("Sheet1") '为了确定用那个工作簿里的工作表,直接set下
      With GetObject(strPath)              '只读打开  ,条件结果放入字典
.......................

回复 支持 反对

使用道具 举报

发表于 2017-12-5 15:17 | 显示全部楼层
至于接下来的语句就没细细看,粗看一下不理解:
      .Cells(4, 21).Resize(UBound(arr)) = arr '粘贴数据
      .Cells(4, 22).Resize(UBound(crr)) = crr '粘贴数据
      .Cells(4, 21).Resize(UBound(brr)) = brr '粘贴数据
      .Cells(4, 22).Resize(UBound(drr)) = drr '粘贴数据
为啥arr数据黏贴后要用brr数据覆盖?为啥crr数据黏贴后要用drr数据覆盖?
........
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 15:36 | 显示全部楼层
zjdh 发表于 2017-12-5 15:17
至于接下来的语句就没细细看,粗看一下不理解:
      .Cells(4, 21).Resize(UBound(arr)) = arr '粘贴数 ...

那这个怎么改了

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 17:03 | 显示全部楼层
zjdh 发表于 2017-12-5 15:17
至于接下来的语句就没细细看,粗看一下不理解:
      .Cells(4, 21).Resize(UBound(arr)) = arr '粘贴数 ...

我是设想一个数据对应的一个值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 08:13 | 显示全部楼层
有高手知道这个代码怎么改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 10:49 | 显示全部楼层
zjdh 发表于 2017-12-5 15:17
至于接下来的语句就没细细看,粗看一下不理解:
      .Cells(4, 21).Resize(UBound(arr)) = arr '粘贴数 ...

这个如果要引用多列的数据怎么样修改
回复 支持 反对

使用道具 举报

发表于 2017-12-6 14:49 | 显示全部楼层
网络人 发表于 2017-12-6 10:49
这个如果要引用多列的数据怎么样修改

我都不知道你要达到啥要求!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-6 15:08 | 显示全部楼层
zjdh 发表于 2017-12-6 14:49
我都不知道你要达到啥要求!

就是按照当前数据工作薄“合同编号”列的名称在正单内找到”合同编号”对应的名称所在列的”实际金额”和”订单数量”,因为补单和品异单数据所在的列不同,也要按照这种方式把数据引用过去
回复 支持 反对

使用道具 举报

发表于 2017-12-6 16:24 | 显示全部楼层
网络人 发表于 2017-12-6 15:08
就是按照当前数据工作薄“合同编号”列的名称在正单内找到”合同编号”对应的名称所在列的”实际金额”和 ...

合同号有重复的吗?若有重复要累加吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-1-16 23:32 , Processed in 0.102804 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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