繁体   English   中英

Excel宏或函数:如果单元格不为空,则使用循环值(来自另一张纸)填充单元格区域(A列)

[英]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 )。 这将导致数字介于03n-1 )之间(含03 )。 对于行序列1-61, 2, 3, 0, 1, 2

通过将3n-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM