将初始打开目录设置为具有给定名称的文件夹
好的,让我解释一下大局,这样才有意义。我们有一个例程,将更新多个文件中的属性。当打开的对话框出现时,它会转到下面的文件夹。本人';我想我希望它开始在图纸文件夹,因为我们都有一个文件夹,其中包含我们的图纸。问题是我们没有';t所有文件夹都在同一个驱动器上。对于一些人来说,这是在他们的C:和其他人在他们的D:。有没有一种方法我可以只指定图形,它会在C:或D:中找到它myOpen。InitDir=";一: \HOME\cadfiles\ACAD\LSP“'设置初始文件夹
如果路径相同,您可以简单地遍历所有驱动器
For X = 65 to 90
rVal = Dir(chr(X) & ":\Mypath\MyFile.ext")
If rVal"" Then
X = 91
End If
Next X
这将需要一些错误检查,因为如果驱动器不存在或未就绪,它将失败。但它将在所有驱动器A-Z上找到它 Keith我四处打听了一下,每个人的D上都有这个文件夹:除了一个在E上有这个文件夹的人:
这件棘手的事我忘了提,因为我刚刚意识到了。我们不是在服务器上工作,而是作为一个工作组
我们每个人都被映射到另一个绘图文件夹,那么有没有办法只查找特定的驱动器号? 当然…For X = 67 to 69
rVal = Dir(chr(X) & ":\Mypath\MyFile.ext")
If rVal"" Then
X = 70
End If
Next X
keith我正在努力解决这个问题,但出现了错误。私有函数行高亮显示,它一直高亮显示x,所以我想我可以将所有发生的事情都更改为getfiles,但现在它高亮显示了rVal。我搞砸了什么
'Display an open dialog, adds selected files to an array
Private Function GetFiles() As Variant
'Stores the object created by the CommonDialog class
Dim myOpen As CommonDialogProject.CommonDialog
Set myOpen = CommonDialogProject.Init 'Create the object
myOpen.DialogTitle = "Select drawings" 'Change the title
myOpen.Filter = "AutoCAD Drawing files (*.dwg)|*.dwg|" & _
"AutoCAD Drawing template files (*.dwt)|*.dwt"
myOpen.DefaultExt = "dwg"
'Set flags to limit behavior of the dialog box
myOpen.Flags = OFN_ALLOWMULTISELECT + _
OFN_EXPLORER + _
OFN_FILEMUSTEXIST + _
OFN_HIDEREADONLY + _
OFN_PATHMUSTEXIST
For GetFiles = 67 To 69
rVal = Dir(Chr(GetFiles) & ":\Drawings")
If rVal"" Then
GetFiles = 70
End If
Next GetFiles 你可以';t那样做….将我提供的代码完全放在一个函数中。无论rVal的值是什么,都将是默认目录位置的路径。将该值设置为“浏览文件夹”API中的默认目录 基思对不起,但我';我对此很陌生,可以#039;我不知道怎么做。我想我所要做的就是在底部创建一个新函数;默认文件夹;然后说initdir=defaultfolder,但它';它不工作。你或其他人能帮我解决这最后一点吗。谢谢 将此功能作为单独的功能添加到CommonDialog模块中Private Function FindPath (ByVal path As String) As String
Dim X As Integer
For X = 67 to 69
rVal = Dir(Chr(X) & ":\" & path & "\*.*")
If rVal"" Then
FindPath = Chr(X) & ":\" & path
X = 70
Else
FindPath = "C:\"
End If
Next X
End Function
现在,在CommonDialog函数中,添加(在显示表单之前的最开始处)
MyOpen.InitDir = FindPath ("path\to\files\no\leading\or\trailing\backslashes")
yikes keith i';我还是不明白。该例程利用CommonDialog。dvb使';我把你给我的钻头放在那里(见下文)。第二位是i';我不清楚。这一行最初在另一个名为Updateattribute的文件中。我试着把它放在开头,但我35;039;我不太明白你的意思;在开始展示表格之前
I';m困惑
Option Explicit
Public Function Init() As CommonDialog
Set Init = New CommonDialog
End Function
Private Function FindPath(ByVal path As String) As String
Dim X As Integer
For X = 67 To 69
rVal = Dir(Chr(X) & ":\" & path & "\*.*")
If rVal"" Then
FindPath = Chr(X) & ":\" & path
X = 70
Else
FindPath = "C:\"
End If
Next X
End Function
哦..所以它们在不同的模块中..将FindPath函数与公共对话框的代码放在同一个模块中…例如,您将从同一模块调用它。
页:
[1]
2