If statement VB脚本If then End语句
我试图将宏转换为VB脚本,但在“if..then..end”语句中遇到了问题。这是我的密码If statement VB脚本If then End语句,if-statement,vbscript,If Statement,Vbscript,我试图将宏转换为VB脚本,但在“if..then..end”语句中遇到了问题。这是我的密码 Option Explicit Public OpenedWB Dim valueEntered, fileCount Dim userResponse Dim NewWB, NewWS Dim i Dim OpenedWBName Dim Found Dim FSO, txtFILE Dim HostFolder Dim dApproved, dPrepared, filearray() Dim x
Option Explicit
Public OpenedWB
Dim valueEntered, fileCount
Dim userResponse
Dim NewWB, NewWS
Dim i
Dim OpenedWBName
Dim Found
Dim FSO, txtFILE
Dim HostFolder
Dim dApproved, dPrepared, filearray()
Dim xlApp
Dim xlCalculationManual
Dim xlCalculationAutomatic, msoFileDialogFolderPicker, msoFileDialogViewSmallIcons
xlCalculationManual = -4135: xlCalculationAutomatic = -4105
msoFileDialogFolderPicker = 4: msoFileDialogViewSmallIcons = 7
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set NewWB = xlApp.Workbooks.Add
NewWB.Windows(1).Visible = True
Set NewWS = NewWB.Worksheets.Add
Set FSO = CreateObject("Scripting.FileSystemObject")
With xlApp
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
i = -1
'UI (Dynamic) Directory
With xlApp.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Select the folder to scan through sub-folders"
.ButtonName = "Select this folder!"
.InitialFileName = _
"\\..somepath"
.InitialView = msoFileDialogViewSmallIcons
If .Show <> i Then End 'This is throwing an error (Expected statement error)
HostFolder = .SelectedItems(1)
End With
选项显式
公共开放数据库
输入的Dim值,文件计数
Dim用户响应
昏暗的新世界,新世界
昏暗的我
Dim OpenedWBName
暗淡的发现
Dim FSO,txtFILE
Dim主机文件夹
Dim-daprovided、dPrepared、filearray()
Dim xlApp
尺寸计算手册
Dim XLCalculation自动、msoFileDialogFolderPicker、MSOFILEDIALOGVIEW小图标
xlCalculationManual=-4135:xlCalculationAutomatic=-4105
msoFileDialogFolderPicker=4:msofiledialogviewssmallicons=7
设置xlApp=CreateObject(“Excel.Application”)
xlApp.Visible=True
设置NewWB=xlApp.Workbooks.Add
NewWB.Windows(1).Visible=True
设置NewWS=NewWB.Worksheets.Add
设置FSO=CreateObject(“Scripting.FileSystemObject”)
使用xlApp
.ScreenUpdate=False
.EnableEvents=False
.Calculation=xlCalculationManual
以
i=-1
'用户界面(动态)目录
使用xlApp.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect=False
.Title=“选择要扫描子文件夹的文件夹”
.ButtonName=“选择此文件夹!”
.InitialFileName=_
“\\…某个路径”
.InitialView=msoFileDialogViewSmallIcons
If.Show i Then End'这是抛出错误(预期语句错误)
HostFolder=.SelectedItems(1)
以
我不确定为什么会出现这个错误,因为它在VBA中工作得很好,但我猜这是因为我在VBA子过程中有代码
有人能帮我解决这个问题吗
谢谢你的意图是什么?如果您打算使用
End
作为结束程序的语句,那么您应该知道VBScript中没有End
语句,它是“End program”命令(但无论如何都不应该使用它,因为它不执行任何程序清理,并且可能导致需要处理的资源泄漏)
我想您需要的是Exit
语句。Exit
语句实际上并不完全退出程序,它与其他语言中的return
和break
相当:
Exit语句语法有以下形式:
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
不幸的是,您不能在“顶级”脚本程序代码内使用Exit
(即在显式子或函数
外)。我的建议是将您的程序包装在Sub
中,您的顶级程序只需调用Sub
即可
另外,不要将其与Stop
语句混淆,后者实际上会暂停脚本执行(如断点),直到用户恢复执行,因此它不是真正的“停止执行”命令。它也不会关闭句柄:
Stop
:暂停执行。
使用Stop
语句类似于在代码中设置断点。
Stop
语句暂停执行,但不关闭任何文件或清除任何变量
在您的例子中,只需将的If
倒置就简单多了,如下所示:
With xlApp.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Select the folder to scan through sub-folders"
.ButtonName = "Select this folder!"
.InitialFileName = "\\..somepath"
.InitialView = msoFileDialogViewSmallIcons
If .Show = i Then
Set HostFolder = .SelectedItems(1)
End If
End With
(我假设HostFolder
必须分配Set
语句,因为它是对象而不是值,但如果它在没有Set
的情况下工作,那就没问题了)
TL;博士:
- VBScript中没有结束程序执行的单个
End
语句。它只存在于VB6、VBA和VB.NET中
Stop
语句实际上像断点一样暂停执行,而不是结束执行
Exit
语句仅在父控件结构、Sub
或函数
中起作用,因此它在顶级程序中不起作用
您的意图是什么?如果您打算使用
End
作为结束程序的语句,那么您应该知道VBScript中没有End
语句,它是“End program”命令(但无论如何都不应该使用它,因为它不执行任何程序清理,并且可能导致需要处理的资源泄漏)
我想您需要的是Exit
语句。Exit
语句实际上并不完全退出程序,它与其他语言中的return
和break
相当:
Exit语句语法有以下形式:
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
不幸的是,您不能在“顶级”脚本程序代码内使用Exit
(即在显式子或函数
外)。我的建议是将您的程序包装在Sub
中,您的顶级程序只需调用Sub
即可
另外,不要将其与Stop
语句混淆,后者实际上会暂停脚本执行(如断点),直到用户恢复执行,因此它不是真正的“停止执行”命令。它也不会关闭句柄:
Stop
:暂停执行。
使用Stop
语句类似于在代码中设置断点。
Stop
语句暂停执行,但不关闭任何文件或清除任何变量
在您的例子中,只需将的If
倒置就简单多了,如下所示:
With xlApp.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Select the folder to scan through sub-folders"
.ButtonName = "Select this folder!"
.InitialFileName = "\\..somepath"
.InitialView = msoFileDialogViewSmallIcons
If .Show = i Then
Set HostFolder = .SelectedItems(1)
End If
End With
(我假设HostFolder
必须分配Set
语句,因为它是对象而不是值,但如果它在没有Set
的情况下工作,那就没问题了)
TL;博士:
- VBScript中没有结束程序执行的单个
End
语句。它只存在于VB6、VBA和VB.NET中
Stop
语句实际上像断点一样暂停执行,而不是结束执行
Exit
语句仅在父控件结构、Sub
或函数中起作用