如何修改VBA代码将文件名列移至合并数据的末尾?
修改VBA代码将文件名列移至合并数据末尾
只需调整SQL查询语句的字段顺序,就能把文件名列从第一列移到合并数据的末尾:
- 打开VBA编辑器,找到
ConsolidateData子过程里的Do While循环块 - 找到定义SQL语句的代码行:
(当前导致文件名列在第一列的写法)
将其修改为:strSql = "SELECT '" & Left(sFileName, Len(sFileName) - 5) & "' as [FileName], * FROM [Sheet1$A1:H]"strSql = "SELECT *, '" & Left(sFileName, Len(sFileName) - 5) & "' as [FileName] FROM [Sheet1$A1:H]"
原理说明
SQL语句中字段的顺序直接决定了合并后数据的列顺序:
SELECT *会先提取原工作表Sheet1$A1:H的所有列- 再追加定义好的
[FileName]列,最终文件名列就会出现在合并数据的最后一列
后续的表头写入和数据复制逻辑会自动跟随Recordset的字段顺序,无需修改其他代码。
内容的提问来源于stack exchange,提问作者YasserKhalil
相关产品推荐
相关产品推荐

