在python中,使用libs来处理excel文件,我可以做我想做的事。 但是现在,因为我正在努力学习VBA,我需要问这个问题。
我正在处理一个包含大约12列和50000行的工作表。 此数据表示发送给公司的请求。 5#列表示其代码,10#表示完成它的时间。 但是,例如,第5,10和12行可能属于同一个请求,并且只是为了组织目的而划分。
我需要处理这些数据,以便我可以:
第6列#代表该人 谁回答了这个请求。所以,我需要 将每个请求都放在“人”上 工作表“。另外,创建此 他之前的工作表 添加请求。
对于每个人(工作表), contabilize请求类型(列 2#)由他参加。即,创造 其工作表上的另一个表 显示: Type_Of_Request | Number_of_ocurrences
Obs:我知道stackoverflow上的大多数问题都是为了解决一个特定的问题,但我在这里要求启动路径。 甚至是解决方案,如果可能的话。
出于解释目的,我认为解释python中使用的算法将帮助那些了解一点python和VBA的人在这里帮助我。 所以,对于每个问题:
创建一个管理6#列数据的dict。 此dict将使用该人的唯一名称作为密钥,并且对于他回答的每个请求,它将被添加到指向其姓名的列表(dict密钥)。 就像是: {person1:[request1,request2,request3,...],...}
另一个管理2#列数据的字典(请求类型)。 现在,我将有一个dict,其中每个条目都有一个列表,显示该类型的请求。 在定位了所有请求之后,我在列表上做了一个简单的求和,并用(key,sum(dict [key])填充了一个表 其中dict [key]是相同类型的请求列表,其中的总和返回该类型的请求总数。 就像是: {request_type1:[request1,request2,request3,...],...}
嗯,同样是2,但是在初始完整表格上应用算法。
我不知道VB是否有类似python的dict类型(并且帮助很多!),即使因为我是VB的新手。 非常感谢,任何帮助。
答案 0 :(得分:3)
vba确实有一个字典类型,但它的用法可能不会反映python的实现。 (见:http://msdn.microsoft.com/en-us/library/aa164502%28v=office.10%29.aspx)
您还可以创建用户定义的类型(请参阅:http://msdn.microsoft.com/en-us/library/aa189637%28v=office.10%29.aspx)
如果你有一个有效的解决方案,这是你最好的起点。许多python字符串函数等甚至可能被命名为相同或足够接近,以便您在语言参考中轻松找到它们。
答案 1 :(得分:0)
使用ADO可以更容易地发现这一点,使用Jet / ACE连接可以很好地与Excel配合使用。它还允许使用rs.CopyFromRecordset将合适的集合写入工作表。