Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Читайте новые сообщения форума форума в RRS-агрегаторах

Автор Тема: Ошибка оперетора ChDir в программе для выбора файла  (Прочитано 2262 раз)

0 Пользователей и 1 Гость просматривают эту тему.

al1

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 1

Написал программу для выбора файла, работает отлично. Но не могу заставить ее открывать нужную папку. Помогите кто чем может. Заранее спасибо.
sub searchfile()
ActWbk = ActiveWorkbook.Name
    ChDir Sheets("Set").Cells(13, 2).Value 'Эта команда не работает, что только не делал - открывает Мои документы
    While Msg <> 6
        If Application.FindFile = False Then Exit Sub
        OpenFileName = ActiveWorkbook.Name
        Msg = MsgBox("Этот файл подойдет?", vbYesNoCancel, "Выбор файла")
        If Msg = 2 Then
            ActiveWorkbook.Close
            Exit Sub
        End If
        If Msg = 7 Then ActiveWorkbook.Close
    Wend
end sub
В ячейке B13 сетевой адрес: \\192.168.0.200\s1\ЗАКАЗЫ\Заказы\Пробная\
« Последнее редактирование: 22.08.2008, 04:34:26 от al1 »
Записан

ggen

  • Пользователь
  • **
  • Уважение: +2/-0
  • Оффлайн Оффлайн
  • Сообщений: 54

Располагаю следющей информацией.
Свойства ChDrive, ChDir не умеют работать с сетевыми адресами в формате UNC. Они работают только с локальными адресами папок и с теми сетевыми адресами, в которых фигурируют буквы дисков, нпр. X:\...\...

Для работы с сетевыми папками можно:
а) создать соединение с нужной/корневой папкой в эксплорере (присвоить ему диск). Недостаток - на каждом комрьютере, на котором работает макрос, должно быть создано это соединение вручную.
б) Воспользоваться API функциями. Ниже приведен пример из учебника для этого случая. Вместо СhDir будет использоваться ChDirUNC - процедура из макроса.

' **************************************************************
' Declarations for the ChDirUNC example function
' **************************************************************
'Set the current directory to a UNC path
Private Declare Function SetCurDir Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Comments: Change to a UNC Directory
'
' Arguments:    sPath       The path to change to.
'                           Can be either standard or UNC form:
'                           <Drive Letter>:\Path
'                           \\server\share\path
'
' Date          Developer       Action
' --------------------------------------------------------------
' 02 Jun 04     Stephen Bullen  Created
'
Sub ChDirUNC(ByVal sPath As String)
    Dim lReturn As Long
    lReturn = SetCurDir(sPath)
    If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
Записан
 



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 2330
09.08.2019 14:09 Макрос для заполнения таблиц через форму 3537
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 3186
09.07.2019 20:39 Кредит с уменьшением периода выплат 3231
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 4344
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 3863
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 3523
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 4650
20.01.2019 12:38 Все варианты частичного суммирования 3844
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 3432





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.121 секунд. Запросов: 103.