Страницы: 1
RSS
VBA. Обращение к файлу на сетевом диске.
 
Добрый день.

Скрипт копирует данные из файла открытого на текущем компьютере и переносит в пустую ячейку файла на сетевом диске, а далее уже раскрашивает итоговый файл и создаёт границы ячеек.
Когда подобное делал с файлами не на сетевых дисках, то проблем не было и я писал в ChDir просто директорию через диск "T:\НДС".
Но вот с переходом на сетевые диски скрипт пишет, что не находит файл в по данному адресу, что я полагаю означает некорректность адреса.

Можете помочь? По поиску нашёл разные варианты смены директории и прочего, но не до конца дохожу до этого сам.

Заранее спасибо.
Код
sub трь()
  
ChDir ("тут проблема")
Workbooks.Open Filename:="Тест3"
Worksheets("Лист1").Unprotect "123"
ActiveWorkbook.Save
ActiveWorkbook.Close
Range("A1:H1").Copy
ChDir ("тут проблема")
Workbooks.Open Filename:="Тест3"
ActiveSheet.Paste Destination:=Range("$A$" & CStr(ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1))
Worksheets("Лист1").Protect Password:="123", UserInterfaceOnly:=True
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If i Mod 2 = 0 Then
            Range(Cells(i, 1), Cells(i, "S")).Interior.Color = RGB(221, 235, 247)
             Range(Cells(i, 1), Cells(i, "S")).Borders.LineStyle = True
        Else
            Range(Cells(i, 1), Cells(i, "S")).Interior.Color = RGB(255, 217, 102)
            Range(Cells(i, 1), Cells(i, "S")).Borders.LineStyle = True
        End If
    Next i
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub
Изменено: Morzan - 11.08.2017 13:26:05
 
Morzan, код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение.
И не нужно в коде столько пустых строк - что они дают, кроме ухудшения читабельности?
 
Изменил. С пробелами привычка структурировать)
 
Цитата
с переходом на сетевые диски скрипт пишет, что не находит файл в по данному адресу,
Для сетевых дисков используйте путь "\\СетевоеИмяКомпьютера\..............."
Изменено: Kuzmich - 11.08.2017 13:48:55
 
Ммм, честно не понял. Каким образом сетевое имя компьютера тут поможет и как его его вписать в путь?

\\СетевоеИмяКомпьютера\D\НДС  Так?
 
Цитата
Kuzmich написал: используйте путь "\\СетевоеИмяКомпьютера\..............."
Или по IP адресу (подставьте нужный)
Код
\\192.168.1.1\Папка\Подпапка\Моя_папка\Нужная_папка
Согласие есть продукт при полном непротивлении сторон
 
Не работает, господа.
У меня есть буква диска, либо же его название/сервер:
\\v6317-vs-ab\bank_otch$\ (буквы изменены)
Исходя из этих данных, мы можем что-нибудь придумать?
 
"\\ИмяКомпьютера\ИмяПапки\ИмяФайла"
 
Цитата
Юрий М написал:
"\\ИмяКомпьютера\ИмяПапки\ИмяФайла"
Нет. Где указание на сетевой диск?
 
ChDir с этим работать не будет. "\\сервер...\имя_файла.xlsx" укажите в Workbooks.Open.
 
Цитата
Morzan написал:
Нет
Да. Двойной слэш. И правильно говорит Equio - ChDir тут не нужно писать.
 
Вот в таком формате написал: Workbooks.Open "\\v6317-vs-ab\bank_otch$\Тест1.xlsx" и снова ошибка.
Правда раньше только компилятор сообщал о ней, а теперь сам эксель и после этого уже и компилятор
Изменено: Morzan - 11.08.2017 14:18:25
 
В скобки возьмите.
 
Workbooks.Open ("\\v6317-vs-ab\bank_otch$\Тест1.xlsx")  не работает так же
 
Цитата
Morzan написал: и снова ошибка
Какая ошибка?
Согласие есть продукт при полном непротивлении сторон
 
У меня так:

Код
Workbooks.Open Filename:="\\xxxx.local\Shared\Отдел доставки\Логистика\Общий оперативный отчет.xlsb"


Ваш пример, скорее всего так:

Код
Workbooks.Open Filename:="\\v6317-vs-ab\bank_otch$\Тест1.xlsx"
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
А файл Тест1 или Тест3 называется?  
 
Сначала ексель сообщает в ошибке, что "к сожалению, не удаётся найти "\\v6317-vs-ab\bank_otch$\Тест1.xlsx". Возможно, объект был перемещён, переименован или удалён.
Компилятор сообщает об ошибке "run-time error '1004' и дальше пишет примерно тоже самое, что и эксель.

А файл называется по другому, я просто для примеров вам меняю имя перед отправкой)  
Изменено: Morzan - 11.08.2017 14:28:08
 
Ещё расширение проверьте чтобы правильное было xlsx/xlsm/...
 
Цитата
Equio написал:
ное было xlsx/xlsm/...
Да, само собой, открываемый файл xlsx
 
В именах, вроде как, нельзя использовать $
 
Давайте новый код целиком, как в первом посте, в студию   :)  
 
Morzan, Найдите файл, который надо открыть, правой кнопкой мыши- свойства и скопируйте расположение. Все должно работать
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Цитата
Dyroff написал:
Найдите файл, который надо открыть, правой кнопкой мыши- свойства и скопируйте расположение.
И у нас есть победитель)
Там путь просто через букву диска и всё.
Значит, изначально была проблема именно в том, что пытался сетевой открыть через ChDir и всё.
Всем спасибо, вы классные)
 
И всё же интересно, почему через UNC-путь не работало...  
Страницы: 1
Читают тему
Наверх