【发布时间】:2012-12-10 23:51:45
【问题描述】:
我有一个包含数百个工作表的工作簿,每个工作表的布局方式相同(即拥有相同的列),但数据行数不同。
我想循环浏览每张工作表中的每一行,如果某一列(“L”列)中的值是特定值(在本例中为字符串),我想将该行复制到新工作表。所以最后我有一个大工作表,其中每一行都存在于较大的工作簿中,在“L”列中具有特定的指定值。
我不想也循环浏览我将结果复制到的工作表;也许我需要从不同的工作簿执行此操作?
提前致谢。
回复:
所以文件和代码在我的办公室,但是:如果这是在 1 个工作表中,我知道有几种方法可以遍历行并返回部分或全部相应字段。我遇到的麻烦是(a)对其进行设置,使其在不同行数的不同工作表中循环,(b)将其返回到新的工作表,而无需重写已经编写的内容。如果有人有使用 ADO 的解决方案,那也将受到欢迎,因为它作为一个整体是一个非常大的工作表。再次感谢,如果我提出大而未指定的问题,我深表歉意。
【问题讨论】:
-
到目前为止你尝试过什么?代码中是否有任何特定的地方出现问题?
-
+1 @Kevin。是的,请向我们展示您尝试过的代码以及您遇到的问题。我们可以通过这种方式帮助您更轻松...如果您真的不知道。谷歌“Excel VBA 循环遍历工作表”,还可以查看
.Find和.AutoFilter方法。这是一个很好的开始。 -
如果你不想要,不需要不同的工作簿。在您的骑行过程中,测试和跳过那个“新”工作表会很容易。
-
所以您打算使用基于
ADO的解决方案。那么你认为你保存为临时表的数据可以有一个公共索引字段吗?因为索引可以极大地优化您的搜索类型。并尽量降低来回工作簿的流量。如果所有可搜索工作表都在同一个字段/列结构中,则将它们转储到您的临时表中,进行搜索。将所有匹配的值转储到新工作表。不要忘记 Excel 中的VBA Binary SearchOUTPERFORMS.Find()。 :)