我必须.xlsx文件。一个人有数据" source.xlsx"一个人有宏" work.xlsm"。我可以加载来自" source.xlsx"的数据。进入" work.xlsm"使用Excel的内置加载或使用Application.GetOpenFilename。但是,我不想要source.xlsx中的所有数据。我只想选择特定的行,其标准将在运行时确定。 将此视为带有参数的数据库中的SELECT。我需要这样做来限制" work.xlsx"处理的数据的时间和处理。 有没有办法做到这一点?
我尝试使用Excel中的参数化查询 - > [数据] - > [来自其他来源],但当我这样做时,它抱怨没有找到一个表(与ODBC相同)。这是因为源没有定义表,所以它是有道理的。但是我被禁止触及来源。
因此,简而言之,我需要在将数据导出到目标表之前过滤数据,而不触及源文件。我想以交互方式或通过VBA宏来做这件事。
注意:我使用的是Excel 2003。
任何帮助或指示将不胜感激。 THX。
答案 0 :(得分:0)
我使用宏将源文件从.xlsx转换为.csv格式,然后使用包含所需过滤器的循环加载csv格式的文件。
这种方法可能不是最好的,然而,没有提供任何其他建议,而且这个建议有效!
另一种方法是放弃预过滤的想法,牺牲加载时间延迟,并在“work.xlsm”文件中执行过滤和删除不需要的行。在这种情况下,性能和内存大小是主要因素,假设代码复杂性不是问题。