过去两个月我一直在教自己的VBA,最后我发现了一些我找不到答案的东西。荣誉堆栈溢出为我带来迄今为止! :)从文件路径中取出最后一个文件夹
我想做一个子文件夹,如果该文件夹被命名为“工具箱”,将最后一个文件夹移出当前文档的文件路径。
Sub mOpenFile()
aVar() As String
swbDir = ThisWorkbook.Path
aVar = Split(swbDir, "\")
'test and change sWbDir
If aVar(UBound(aVar)) = "Toolbox" Then
'--------------------------------------------------
N = 1
swbDir = aVar(0)
Do Until aVar(N) = "Toolbox"
swbDir = swbDir & "\" & aVar(N)
'--------------------------------------------------
Loop
MsgBox (swbDir)
End If
'open file in the folder below "toolbox"
ChDir swbDir
Workbooks.Open Filename:=swbDir & "\" & sWbRead
ActiveCell.Offset(2, 1).Range("A1").Select
End Sub
我想我的代码本身是正确的,但它一直弹出一个“声明无效的外部类型块”错误。我已经读过类型块,但这对我来说都是希腊文。如何在不知道有多少元素的情况下对数组进行维度定位。我可以在没有类型...结束类型的情况下执行吗?我已经能够滑动到目前为止没有使用任何数组,但这是我想要学习的东西,尺寸化我的数组。 :/
'aVar()As String' - >'Dim aVar()As String'。此外,似乎你有无限循环:'直到aVar(N)=“工具箱”'。你是否应该在循环中增加'N':'N = N + 1'? –
可能重复? http://stackoverflow.com/questions/4326678/dynamically-dimensioning-a-vba-array – RubberDuck
Dimensionaing变量需要'Dim'关键字(或'ReDim')。 –