我尝试保存文件,但是从小名单中随机输入名称。这就是我到目前为止所做的:
Option Explicit
Option Base 1
Public Sub SaveToDrive()
Dim categorys(5) As String
categorys(1) = "Adam"
categorys(2) = "James"
categorys(3) = "Henry"
categorys(4) = "William"
categorys(5) = "Keith"
ThisWorkbook.SaveAs Filename:="e:\" & categorys(Int((5 - 1 + 1) * Rnd + 1)).Name
End Sub
目前,这会在" categories"上返回无效限定符错误在倒数第二行。
我对VBA来说是全新的,但我想知道这是否可能,或者是否有其他/更好的方法。
感谢。
答案 0 :(得分:3)
请参阅下面的工作示例。几个笔记:
默认情况下,VBA中的数组从0开始。这可以通过模块头中的Option Base 1
或Option Base 0
进行更改,但最安全的方法是在声明数组时简单地指定下限和上限(Dim categorys(5)
- > { {1}})
不确定Dim categorys(1 To 5)
服务的目的是什么,所以我摆脱了它:- 1 + 1
- > Int((5 - 1 + 1
我将表达式拆分并添加了一些中间变量,以便更容易阅读和维护(Int((5
- > & categorys(Int((5 - 1 + 1) * Rnd + 1)).Name
)
字符串不是VBA中的对象,因此它们不能包含Dim RandomIndex...
.Name