有没有我可以使用的方法将整个范围转换成一行?
是的,你可以转换没有循环。试试这个
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