3

開いているダイアログ ボックスをデフォルトでネットワーク上の特定のフォルダに割り当てようとしています。パスを使用しましょう:

\\test\yes\no\

以下のコードは機能しませんが、エラーも発生しません。何が間違っているのかわかりません。

Private Declare Function SetCurrentDirectory _
Lib "kernel32" _
Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String) _
As Long

SetCurrentDirectory "\\test\yes\no\"

人々がこれを行っているいくつかの方法を見てきましたが、何もうまくいかないようです。それが役立つ場合、私はExcel 2010を使用しています。

私のディレクトリコード:

With Application.FileDialog(msoFileDialogFolderPicker)
    SetCurrentDirectory "\\test\yes\no\"
    .AllowMultiSelect = False
        If .Show <> -1 Then MsgBox "No folder selected! Exiting script.": Exit Sub
    myDir = .SelectedItems(1)
        End With

    MsgBox "Please choose the folder."
    Application.DisplayAlerts = False
        '*********************************************************************************************
    'Check for .xls cutsheets; open one at a time with a loop until all file data has been copied
    '*********************************************************************************************
    folderPath = myDir
        If Right(folderPath, 1) <> "\" Then folderPath = folderPath + "\"
    fileName = Dir(folderPath & "*.xls")
        Do While fileName <> ""
    Application.ScreenUpdating = False
        Set wbkCS = Workbooks.Open(folderPath & fileName)
4

2 に答える 2

7

Application.FileDialogと を使用しても機能しませんSetCurrentDirectory。ただし、InitialFileNameプロパティを使用して設定する"\\test\yes\no\"(つまり、パスを指定するだけ) ことはできます。

With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "\\test\yes\no\"
    .AllowMultiSelect = False
    If .Show <> -1 Then MsgBox "No folder selected! Exiting script.": Exit Sub
        myDir = .SelectedItems(1)
End With
于 2013-01-07T22:45:44.333 に答える
1

次を使用してダイアログボックスを開くことができます。

Private Declare Function SetCurrentDirectory _
Lib "kernel32" _
Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String) _
As Long


Sub OpenDialogInNetworkPath()
    SetCurrentDirectory "\\test\yes\no\"
    FileToOpen = Application.GetOpenFilename _
    (Title:="Please choose a file to import", _
    FileFilter:="Excel Files *.xls (*.xls),")
    Workbooks.Open Filename:=FileToOpen
End Sub

これは役に立ちますか?完全なマクロを投稿できますか?

于 2013-01-07T21:45:20.770 に答える