有沒有我可以使用的方法將整個範圍轉換成一行?
是的,你可以轉換沒有循環。試試這個
Sub Sample()
[A1:A20] = [INDEX(UPPER(A1:A20),)]
End Sub
按照您的例子
W.Range("A1:A20") = [index(upper(A1:A20),)]
說明
有兩部分[A1:A20] = [INDEX(UPPER(A1:A20),)]
PART 1
如上圖所示,[A1:A20]
無非是寫Range("A1:A20")
PART 2
[INDEX(UPPER(A1:A20),)]
Index
和Upper
是工作表函數的只是一小段路。所以,你可以使用Application.Worksheetfunction.Index()
但由於我們沒有的UPPER
等效像Application.Worksheetfunction.UPPER()
,我們只能把它寫成[cell] = [UPPER(cell)]
與該行我們指示
VBA
返回數組
現在,而這正是INDEX
進場。 ()正如我們所知,INDEX
函數有兩種形式:數組形式和參考形式。)通過不指定數組的行或列,我們只是讓Excel知道我們想要整個數組。 (文中提到的VBA幫助以及)所以基本上我們所做的是每個單元轉換在[A1:A20]
爲大寫
你爲什麼不想要遍歷每個單元格? – Jack