Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在VBA for Excel中创建动态数组的哈希表(我认为这在VBA中称为字典),以存储范围_Arrays_Vba_Excel_Data Structures - Fatal编程技术网

Arrays 如何在VBA for Excel中创建动态数组的哈希表(我认为这在VBA中称为字典),以存储范围

Arrays 如何在VBA for Excel中创建动态数组的哈希表(我认为这在VBA中称为字典),以存储范围,arrays,vba,excel,data-structures,Arrays,Vba,Excel,Data Structures,问题是:我有一个很大的销售记录表,其中一列是销售发生的状态。我需要将每个销售从给定州复制到该州的单独工作簿中。我可以打开一个州的工作簿,然后扫描该表,并在每次从该州的表中找到销售时复制数据,然后继续此过程,但这有点慢,因为它正在扫描每个州的整个表。我更愿意扫描一次表,并将所有销售(每个销售在Excel中由一行的一部分表示)推送到一个可以由states名称引用的数组中;这些数组应该是动态的,因为我不知道每个州有多少销售额。因此,本质上,我需要一个哈希表,状态名称为键,动态数组存储范围为值。这可能吗

问题是:我有一个很大的销售记录表,其中一列是销售发生的状态。我需要将每个销售从给定州复制到该州的单独工作簿中。我可以打开一个州的工作簿,然后扫描该表,并在每次从该州的表中找到销售时复制数据,然后继续此过程,但这有点慢,因为它正在扫描每个州的整个表。我更愿意扫描一次表,并将所有销售(每个销售在Excel中由一行的一部分表示)推送到一个可以由states名称引用的数组中;这些数组应该是动态的,因为我不知道每个州有多少销售额。因此,本质上,我需要一个哈希表,状态名称为键,动态数组存储范围为值。这可能吗?如果没有更好的方法?

您可以尝试使用ADO,电子表格上的SQL将加快速度。我目前不熟悉ADO,但它是否可以让我编写SQL语句以从Excel表中获取信息?我以为ADO只是用于将数据库中的数据输入Excel,我错了吗?不,你错了,ADO是一种连接到各种数据类型的连接,数据库是我想象中使用最多的,但是你的Excel工作簿将相当于数据库,每个选项卡相当于一个表。谷歌查询Excel使用ADO。例如,您可以使用where x=“Sale”编写SQL和查询。这太棒了,我将进一步研究。谢谢你。@barrow谢谢你的建议,我现在正在研究,它似乎解决了我的问题。对我来说,这似乎不是一个快速解决方案(因为这是一项需要学习的新技术),但它似乎是一种比使用VBA跨多个工作簿自动复制数据更好的方法。你可以尝试使用ADO,电子表格上的SQL将加快速度。我目前不熟悉ADO,但它本质上会允许我编写SQL语句来从Excel表中获取信息吗?我以为ADO只是用于将数据库中的数据输入Excel,我错了吗?不,你错了,ADO是一种连接到各种数据类型的连接,数据库是我想象中使用最多的,但是你的Excel工作簿将相当于数据库,每个选项卡相当于一个表。谷歌查询Excel使用ADO。例如,您可以使用where x=“Sale”编写SQL和查询。这太棒了,我将进一步研究。谢谢你。@barrow谢谢你的建议,我现在正在研究,它似乎解决了我的问题。在我看来,这似乎不是一个快速解决方案(因为这是一项需要学习的新技术),但它看起来比使用VBA跨多个工作簿自动复制数据更好。