【发布时间】:2022-03-02 05:16:24
【问题描述】:
我几乎没有为 excel 编写过 vba 编码,但我熟悉用于访问的 vba 编码。非常感谢任何和所有的帮助!
此问题中使用的示例只是实际存在的数据量的一个片段,因此请记住,代码最多需要容纳 100 多行。
我需要展开并填写下表,tbl1:
使用下表中的数据,tbl2:
我希望输出看起来像这样,tbl3:
我试图将其分解为多个部分,首先我使用 countif 来确定@987654330@ 现在多次出现在tbl2 中,然后在相应行下插入该数量的行,但是我发现它实际上并没有插入行,而是将数据附加到现有行。我想插入行以希望列team 可以为特定的district 保持合并。我似乎无法“插入”行,就像您右键单击插入行时所做的那样。
我遇到的另一个问题是将tbl2 中的附加数据放入输出tbl3。我知道我不能使用 vlookup,因为每个值都有多个匹配项,我不知道如何继续。
编辑
tbl2 实际上将包含比 tbl1 所需的更多的数据,每一行都会有不同的值组合,例如:Cat, Red, South 但我们只对 tbl1 中的值感兴趣,以扩展和填充 tbl1。
【问题讨论】:
-
这不是一张“真实”的桌子,对吧?可以肯定的是,您不能合并表中的行。所以插入不应该做整行,因为excel不希望这样。你试过
EntireRow.Insert吗?或EntireRow.Resize(x).Insert,其中x是您要插入的行数。 -
你有合并的行吗?我的建议是先摆脱这些。
-
如果我对您的理解正确,那么您不需要 VBA。在
tbl2的第四列中使用vlookup并从tbl1中提取数据,这将获得您的district。在tbl2的第 5 列中,再次使用vlookup从tbl1中提取数据以获取您的team。使用Location即第三列作为vlookup的查找文本。 -
@ChristoferWeber 对不起,我不清楚,我并不是说这个表格是“格式化为表格”(“真实”)表格。它只是在excel中的一张表中。没试过,谢谢!
-
是的,我正在阅读,但想法(为方便起见)不是填充
tbl1或tbl2,而是创建一个新表tbl3,然后将tbl1替换为tbl3。
标签: excel vba powerquery