![](/img/trans.png)
[英]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.