保存为集合列表中的随机文件名

时间:2015-01-08 21:15:54

标签: vba random filenames

我尝试保存文件,但是从小名单中随机输入名称。这就是我到目前为止所做的:

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来说是全新的,但我想知道这是否可能,或者是否有其他/更好的方法。

感谢。

1 个答案:

答案 0 :(得分:3)

请参阅下面的工作示例。几个笔记:

  • 默认情况下,VBA中的数组从0开始。这可以通过模块头中的Option Base 1Option 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