Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 选择安装的程序版本_Vba - Fatal编程技术网

Vba 选择安装的程序版本

Vba 选择安装的程序版本,vba,Vba,我有一个脚本,它将根据用户计算机上安装的版本运行。 我有这个代码,但我显然做错了什么,因为什么也没发生。我想我需要使用Dir函数,但我不确定如何使用 Sub CheckNavisworksVersion2() Dim strFileName As String Dim strNavisworksVersion As String Dim strNavisworks2020 As String Dim strNavisworks2021 As String strNavisworks2020 =

我有一个脚本,它将根据用户计算机上安装的版本运行。 我有这个代码,但我显然做错了什么,因为什么也没发生。我想我需要使用Dir函数,但我不确定如何使用

Sub CheckNavisworksVersion2()
Dim strFileName As String
Dim strNavisworksVersion As String
Dim strNavisworks2020 As String
Dim strNavisworks2021 As String

strNavisworks2020 = "C:\Program Files\Autodesk\Navisworks Manage 2020\FiletoolsTaskRunner.exe"
strNavisworks2021 = "C:\Program Files\Autodesk\Navisworks Manage 2021\FiletoolsTaskRunner.exe"
strFileExists = Dir(strFileName)

If strNavisworksVersion = strNavisworks2020 Then
    MsgBox "Version 2020"
    
ElseIf strNavisworksVersion = strNavisworks2021 Then
    MsgBox "Version 2021"
End If

End Sub

Dir
函数中使用的变量不正确。你需要测试每一个

Sub CheckNavisworksVersion2()

Dim strFileExists20 As String
Dim strNavisworks2020 As String
strNavisworks2020 = "C:\Program Files\Autodesk\Navisworks Manage 2020\FiletoolsTaskRunner.exe"
strFileExists20 = Dir(strNavisworks2020)
If strFileExists20 <> "" Then
    MsgBox "Version 2020 exists"
End If

Dim strFileExists21 As String
Dim strNavisworks2021 As String
strNavisworks2021 = "C:\Program Files\Autodesk\Navisworks Manage 2021\FiletoolsTaskRunner.exe"
strFileExists21 = Dir(strNavisworks2021)
If strFileExists21 <> "" Then
    MsgBox "Version 2021 exists"
End If

End Sub

注意:请记住,人们可以将程序安装到他们想要的任何文件夹中,因此这可能不是最好的方法。相反,请阅读注册表并查找存在的键以确定安装了什么。

非常有效,谢谢。好的,谢谢,我会做一些关于使用注册表查找键的研究
Function CheckNavisworksVersion(sVersion As String) As Boolean
  Dim strFileExists As String
  Dim strNavisworks As String
  strNavisworks = "C:\Program Files\Autodesk\Navisworks Manage 20" & sVersion & "\FiletoolsTaskRunner.exe"
  strFileExists = Dir(strNavisworks)
  CheckNavisworksVersion = (strFileExists <> "")
End Function
Dim bInstalled as Boolean
bInstalled = CheckNavisworksVersion("20")
If bInstalled Then MsgBox "Version 2020 exists"
bInstalled = CheckNavisworksVersion("21")
If bInstalled Then MsgBox "Version 2021 exists"