不理解写For x = 1 To UBound(f) 是什么意思?

Sub test()

Application.ScreenUpdating = False

Dim f, wb, x

f = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)

For x = 1 To UBound(f)

Set wb = Workbooks.Open(f(x))

Next
End Sub
1我不理解当初你写For x = 1 To UBound(f) 是什么意思
2UBOUND(f) 我理解的f 是个变量名称 你给我做的就是F就代表某EXCEL文件 然后是EXCEL的数量的最大数 问题我不知道循环这个又什么用 (我理解对不)

慕丝7291255
浏览 358回答 2
2回答

侃侃无极

问题一:f = Application.GetOpenFilename;这句后F是一个一维数组,分别为你选中的文件;你可以输入代码PRINT F(1)  这个就会显示第一个文件;PRINT (2)  就会显示你选中的第二个文件 如果我们选中的是2个文件,那么 UBound(f)就为2了。定义  For x = 1 To UBound(f),是为了后面我要一个个的用WORKBOOKS.OPEN打开这些文件!就是这句:Set wb = Workbooks.Open(f(x))问题二:假设我们都不知道自己选了多少文件,但是F知道。那么F的最大值为多少呢,就为UBound(f),意思就是f这个数组的最大值,还有其它用法,顺便提一下,如下:'数组是用编号排序的,那么如何获得一个数组的大小呢   'Lbound(数组) 可以获取数组的最小下标(编号) 'Ubound(数组) 可以获取数组的最大上标(编号) 'Ubound(数组,1) 可以获得数组的行方面(第1维)最大上标 'Ubound(数组,2) 可以获得数组的列方向(第2维)的最大上标我也不知道自己解释清楚没有,不知道你有没有学习过数组,如果还没有学过,可能理解起来有点困难。

至尊宝的传说

GetOpenFilename可能返回多个文件,For x = 1 To UBound(f)这样就是每个都打开
打开App,查看更多内容
随时随地看视频慕课网APP