我正在创建Excel宏,同时从Excel工作表(包含超过1万行)中提取数据并填充另一个Excel工作表 .
我必须按行逐行插入数据,因为我需要根据列值(例如,EMP_ID)从2-3个不同的表中获取数据 .
例如Excel文件 - 1有
Emp_ID | Emp_Name | Age
现在,根据每个员工ID,我需要从其他3个Excel工作表中获取员工相关数据 . 所以我必须循环通过10k记录 .
当我执行代码时,Excel应用程序就会挂起 . 我想这是因为我尝试逐行插入数据 .
有人可以建议更快的方式来插入/更新大量的行 .
我已经尝试使用Variant / Array来存储数据,然后填充工作表 . 但它似乎仍然没有用 .
注意:我正在将源文件中的记录读入RecordSet . 我已添加:
Application.DisplayAlerts = False,
Application.ScreenUpdating = False,
Application.Calculation = xlCalculationManual
然后将其设置回默认值 .
3 回答
我知道这不是一个直接的答案,但有时最好教导如何完成工作,简单回答 .
您的工作需要使用Access(或任何其他dbms)完成 . 您必须定义三个表,每个表都由Emp_ID索引,并且所有工作人员都变得简单 .
我倾向于同意塞尔吉奥 .
如果使用数据库完全不是一个选项,那么使用数组是可行的方法 .
你能展示你试过的代码吗?
这对我有用:
同意,Excel并不是真正的工具 .
如果您坚持使用它,请尝试以下方法:
使用类对象作为数据结构,只需将所有查找表读入集合中一次 . 例如,创建一个名为
Employee
的类并添加适当的属性 .要阅读它们,你可以像这样编码......
要查找值,请这样做......
然后,肯定的是,DEFINITELY使用一系列变体填充最终的工作表 . 这很直接......