我想將一個陣列輸出到一個范圍,但是我希望該范圍由幾個部分組成。我的示例代碼如下所示,具有預期的輸出。
Sub test()
a = Array(1, 2, 3, 4, 5)
Range("A2:B2,D2:F2") = a
End Sub
我得到的輸出:
ABCDEF
1-2---1-2-3
我想要的輸出:
ABCDEF
1-2---3-4-5
如何從陣列中獲得我需要的輸出?正如您所看到的,輸出正確地跳過了 C 列,但又開始從頭開始輸出陣列,而不是像我預期的那樣繼續。
uj5u.com熱心網友回復:
這是不可能的,很遺憾。您需要撰寫代碼以Range按照您想要的方式寫入不連續的內容。這已經在另一個網站上討論過:https ://www.mrexcel.com/board/threads/filling-a-non-contiguous-range-with-an-array-with-vba.763467/
當然,這不適用于所有情況,但是如果您事先知道不連續范圍的大小,則可以將資訊存盤在大小適當的多個陣列中,然后將相應陣列中的資料寫入每個范圍。這樣,您就完全避免了這個問題。
如果這不可能,我將創建一個Sub將陣列和所有范圍作為輸入的,根據需要將陣列拆分為盡可能多的適當大小的陣列,然后將這些陣列中的每一個寫入相應的范圍。
uj5u.com熱心網友回復:
實際上它完全符合預期。如果要填充非連續范圍,則需要對每個區域執行此操作:
Sub test()
Dim Area1 As Variant
Area1 = Array(1, 2)
Range("A2:B2") = Area1
Dim Area2 As Variant
Area2 = Array(3, 4, 5)
Range("D2:F2") = Area2
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527514.html
標籤:数组擅长vba
上一篇:使用最后日期的多個條件查找
下一篇:如何使用css從svg繼續漸變?
