[英]Macro Excel to copy range cells from one sheet to another based on cell match and skip cell if no match
[英]Excel Macro or Function: Populate a cell range (Column A) with a looped values (from another sheet) if cell is not blank
需要帮助尝试学习宏编码的人。
工作表1有两个A和B栏。工作表2的A列有一个值范围。 如果工作表1列A单元格不为空,我想用工作表2列A上的值填充工作表1列B。
下图。
Sheet2 Col A
Brian,
David,
Nicole,
Aspen,
Col A
Apple
Banana
Orange
Lemon
Mango
Strawberry
Grape
上校B的名称应该是循环的,Brian是Apple的名字,然后是David的Banana名字,依此类推,然后回到David,依此类推,直到Grape的名字是Nicole。
请帮助提供函数或宏vba代码以完成此操作。
一种方法是使用INDIRECT
:
=INDIRECT("Sheet2!A" & MOD(ROW()+3,4)+1)
假设名称在A1:A4
编辑:我只是想了一种使用INDEX
的方法:
=INDEX(Sheet2!A$1:A$4,MOD(ROW()+3,4)+1)
MOD
将返回行号的其余部分除以n
(在这种情况下为4
)。 这将导致数字介于0
和3
( n-1
)之间(含0
和3
)。 对于行序列1-6
是1, 2, 3, 0, 1, 2
。
通过将3
( n-1
)添加到行号,我可以获得1-6
行的序列变为0, 1, 2, 3, 0, 1
然后在mod上加1
即可形成序列: 1, 2, 3, 4, 1, 2
然后我可以将其用作名称表的索引
对于12个名称,您将要使用:
=INDEX(F$1:F$12,MOD(ROW()+11,12)+1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.