为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕丝7291255 2022-04-01 14:10:48
Sub test()Application.ScreenUpdating = FalseDim f, wb, xf = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1, MultiSelect:=True)For x = 1 To UBound(f)Set wb = Workbooks.Open(f(x))NextEnd Sub1我不理解当初你写For x = 1 To UBound(f) 是什么意思2UBOUND(f) 我理解的f 是个变量名称 你给我做的就是F就代表某EXCEL文件 然后是EXCEL的数量的最大数 问题我不知道循环这个又什么用 (我理解对不)
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

问题一:

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维)的最大上标

我也不知道自己解释清楚没有,不知道你有没有学习过数组,如果还没有学过,可能理解起来有点困难。




查看完整回答
反对 回复 2022-04-07
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

GetOpenFilename
可能返回多个文件,
For x = 1 To UBound(f)
这样就是每个都打开

查看完整回答
反对 回复 2022-04-07
  • 2 回答
  • 0 关注
  • 357 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号