江湖救急啊,大佬,老大快出现!
vba吧
全部回复
仅看楼主
level 8
各位大佬,想实现excel表格更改后,在关闭该表格前发生,将当前表格更改后数据赋值到其他表格,如何实现呢?当前思路,在当前表格workbook的before querry quit事件中写入代码,将当前表格数据赋值到相应其他表格内,但只能遍历当前全部数据进行赋值,无法做到修改值进行赋值,worksheet中是有个change事件,但使用该事件存在一个问题,效率过于低下,毕竟需打开其他表格,若每修改一个数据,后台打开另一个表格赋值。。。太慢了,如何在关闭当前表格时,将修改值赋值到其他表格呢啊?
2023年03月01日 01点03分 1
level 1
那你可以做个全局字典然后在change事件记把所有的记录都放到字典里面,之后再用before querry quit把字典历遍一下就好
2023年03月01日 03点03分 2
这个速度怎么样呢?另外,狮子,我发现一个问题啊,为什么你的贴吧等级一直都是1级啊,明明这么活跃的
2023年03月01日 04点03分
@白小白真是小白 反正写入的速度肯定就慢了,记录是不会有问题的。因为我没关注这吧
2023年03月01日 05点03分
@ISD_狮子座 放弃了。。。手写vlookup区域识别获取数值吧,蠢是蠢了一点。。。[开心]但是用代码写公式这个还是可以的,最后的倔强了啊[黑线]
2023年03月01日 06点03分
level 11
假设你说的 A表 就是修改过数据的表, B表为 需要根据A表去核对的表
如果A表 只有一个Sheet 那么设定一个全局数组变量
关闭时读入所有数据到 这个数组变量
然后再后台打开 B表,把数据读入 另一个数组变量
然后2组变量 进行历遍核对,有修改的修改,最后存盘关闭
如果A表不止一个Sheet,关闭时建议存牌临时文件,然后一个表一个表读入数组对比。
关键词 全部厉遍,数组对比。
虽然看清来历遍好像很慢,其实都读入数组并不慢。
用change记录 看似很好,但仔细想想,并没有那么简单。
举个例子 我把A1:A10 复制到 B2 并且转置 请问你的change事件如何记录?
做了好几次,我发现前面的做错了 我按了3次crlt+Z 请问你该如何记录?
2023年03月01日 07点03分 3
大佬啊,数组存入与关闭前数据再次存入,两组数组比较差别进行修改,我理解了啊,但是具体操作有一点点难度啊,我将实际应用写在下面那楼了,帮忙再看看,多谢多谢!
2023年03月01日 15点03分
现在我的操作是在各日期表内,使用vlookup跨表通过产品名称,在数据汇总表日期特定区域进行查找特定位置数据,说实话啊,这操作太low了,快赶上直接引用跨表数据了。。。
2023年03月01日 15点03分
level 8
楼上大佬,写不下了,新改个楼啊
首先感谢回复啊,但是那个啥,嗯,我这只是一些想法,也还没实践呢,正咨询各位呢,change事件我也觉得不合适啊,我描述可能不太清楚,实际应用是我有一张数据汇总表,该数据表内一个日期对应4个产品(有多个日期分别对应4个产品),然后另有一张表格,名称为日期,内有4个产品sheet,目的是修改数据汇总表,另一张相应日期表格数据自动更新
2023年03月01日 15点03分 5
其实我觉得像你这种的需求根本没必要搞这么复杂,为什么得一个日期一张表去记录产品呢?你把所有的产品和日期都放同一个表里面不行吗?查看数据的时候就直接一个数据透视表就完事了,如果数据量相对大的,把数据放到ACCESS或者SQL SERVER上就是了,搞个录入框然后上传数据
2023年03月02日 00点03分
@ISD_狮子座 狮子,是这样的啊,每一个日期都是一个批次,我需要出具报告的,如果把所有的日期产品都放在一个表格,那这个工作簿得有120(30天×4张产品)张记录表和一张数据表,太多了啊,还有严格意义上来说,对数据文件归档也不太合适了
2023年03月02日 01点03分
@ISD_狮子座 ,accesss我不会啊,近期也没时间搞了,经理辞职,事情多
2023年03月02日 01点03分
@白小白真是小白 记录表和报告表可以分开的啊,你出报告的时候从记录表中取数据就是了
2023年03月02日 02点03分
level 11
我觉得你可以换一个思路。你最终需要的是报表。
那么你有没有想过,做一个自动报表?又何必每天去填?即便每天要 也是点一下的事情?
楼上说的是没错的。。。原始数据最佳表现形式就是同一页的流水账。。数据越存粹越好,甚至连抬头 标题都不需要。只记录有用的数据
这个图种表格。
从人的阅读舒适度来说是左往右
但是从编码来说 是右往左。越是右边,统计,代码都是非常方便的。
比如我们要把放入数组。
好了跑题了。
你是按日期分表。比我上面 4种表更麻烦。
上面的表,至少我一个 sumifs 可以统计了。
你按日期分表,你用自带公式都不好统计。
估计要做一个 自定义函数 功能类似Sumifs 加入历遍表格。
只要你在数据源表上能做统计表。 只要做个代码
新建一页sheet。 统计表的所有数据复制到新建的这一页 按值复制。
这样 复制出来的统计表 不包含任何公式。代码也非常方便。
Dim Arr
Sheet1.Cells.Copy Sheet2.Cells(1, 1)
Arr = Sheet1.UsedRange.Value
Sheet2.Cells.Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
第一句 这个复制是包含行高列宽等
第二,三句 可以看作,复制,黏贴值 (去公式)
最后把这一页 另存为 xlsx(不含代码)
删除复制页。
不就完事了么?
2023年03月02日 10点03分 6
数据源标题还是要有的,做数据透视表也得标题
2023年03月03日 00点03分
@ISD_狮子座 从代码来说没有最方便,就好比数据库把字段名单独分开。
2023年03月03日 02点03分
level 10


shujuchuli1
365在线
2023年03月04日 05点03分 7
1