我在同一张Excel工作表中有两个表。
我想使用Excel VBA代码来对齐在同一行上部分相等的行集。可以这样做吗?
我一直在考虑这个问题,但是我似乎无法弄清楚代码。
例如,我想将行与同一行对齐 输入了“数字”,“名称”和“订单”。
之前:
谢谢。
答案 0 :(得分:1)
可能不是最好的方法,但是相对简单的方法可能只是使您手动执行的操作自动化。遍历行,检查所需的列是否相同,请使用Range.Insert
方法执行插入操作,而不是手动执行插入操作。
如果这是SQL中的一对表,那么您要查找的是与感兴趣的三列中的两个表中的FULL OUTER JOIN
等效。在this Super User question中有一些有关在Excel中执行此类操作的信息。
我将样本数据放入SQL数据库,并能够使用以下查询重现所需的输出:
SELECT t1.*
FROM Table1 t1
FULL OUTER JOIN Table2 t2 ON t1.Number = t2.Number AND t1.[Name] = t2.[Name] AND t1.[Order] = t2.[Order]
ORDER BY CASE WHEN t1.Number IS NULL THEN t2.Number ELSE t1.Number END
SELECT t2.*
FROM Table1 t1
FULL OUTER JOIN Table2 t2 ON t1.Number = t2.Number AND t1.[Name] = t2.[Name] AND t1.[Order] = t2.[Order]
ORDER BY CASE WHEN t1.Number IS NULL THEN t2.Number ELSE t1.Number END