Vba 另存为集合列表中的随机文件名
我正试图保存一个文件,但它是一个小列表中的随机名称。这就是我到目前为止所做的:Vba 另存为集合列表中的随机文件名,vba,random,filenames,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" ThisWorkb
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
目前,这会在倒数第二行的“categorys”上返回一个无效的限定符错误
我对VBA完全陌生,但我想知道这是否可能,或者是否有其他/更好的方法来实现它
谢谢。请参见下面的工作示例。几点注意:
- 默认情况下,VBA中的数组基于0。这可以通过模块标题中的
或选项库1
进行更改,但最安全的方法是在声明数组时简单地指定下限和上限(选项库0
-->小类别(5)
)小类别(1到5)
- 我不确定你的
有什么作用,所以我把它去掉了:-1+1
-->Int((5-1+1
Int((5
- 我拆分了表达式并添加了一些中间变量,以便以后更易于阅读和维护(
-->&categories(Int((5-1+1)*Rnd+1))。Name
)Dim RandomIndex…
- 字符串不是VBA中的对象,因此它们不能具有类似
.Name
字符串没有Name属性。为什么在行的末尾有一个
.Name
?可能是因为他“对VBA完全陌生”
Public Sub SaveToDrive()
Dim categorys(1 To 5) As String
categorys(1) = "Adam"
categorys(2) = "James"
categorys(3) = "Henry"
categorys(4) = "William"
categorys(5) = "Keith"
Dim RandomIndex As Integer
RandomIndex = Int((5 * Rnd) + 1)
Dim FName As String
FName = categorys(RandomIndex)
ThisWorkbook.SaveAs FileName:="e:\" & FName
End Sub