Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2011, 08:31   #1
Amrek
 
Регистрация: 02.06.2011
Сообщений: 3
По умолчанию Копирование файла на сетевой диск

Подскажите пожалуйста,

А возможно ли сделать такое:

Как сейчас: Когда пользователь нажимает Гиперссылка и указывает файл, на своем компе то ссылка приобритает вид C:\Documents and Settings\user\Рабочий стол\файл И если теперь попробовать открыть эксель с другого компа и попробовать открыть эту ссылку ничего не получится. Имеется ввиду абсолютно любой файл, rar, xls, txt и т.д.

Что бы хотелось, при нажатии на кнопку добавить файл открывалось окно выбора файла, выбираем абсолютно любой файл, в любом месте. Жмем ок. Далее файл копируется на сетевой диск, а в экселе появляется ссылка на этот файл на сетевом диске.

Такое вообще возможно средставми Екселя? И если да то не подскажите код?
Amrek вне форума Ответить с цитированием
Старый 07.06.2011, 10:23   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Option Explicit

Sub tt()
Dim ИмяФайла$

'1.при нажатии на кнопку добавить файл открывалось окно выбора файла, выбираем абсолютно любой файл, в любом месте. Жмем ок.
ИмяФайла = GetFileName("Заголовок окна", ThisWorkbook.Path) ' запрашиваем имя файла
' ===================== другие варианты вызова функции =====================
' текстовые файлы, стартовая папка не указана
' ИмяФайла = GetFileName("Выберите текстовый файл", , "Текстовые файлы (*.txt),")
' файлы любого типа из папки "C:\Windows"
' ИмяФайла = GetFileName(, "C:\Windows", "")
' ==========================================================================

If ИмяФайла = "" Then Exit Sub ' выход, если пользователь отказался от выбора файла

'2.Далее файл копируется на сетевой диск, 
Dim КороткоеИмяФайла$
КороткоеИмяФайла = Split(ИмяФайла, "\")(UBound(Split(ИмяФайла, "\")))
FileCopy ИмяФайла, "\\I6424\Temp\" & КороткоеИмяФайла

'3.а в экселе появляется ссылка на этот файл на сетевом диске.
ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="\\I6424\Temp\" & КороткоеИмяФайла

End Sub


Function GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _
Optional ByVal InitialPath, _
Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String
' функция выводит диалоговое окно выбора папки с заголовком Title,
' начиная обзор диска с папки InitialPath
' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
If Not IsMissing(InitialPath) Then
On Error Resume Next: ChDrive Left(InitialPath, 1)
ChDir InitialPath ' выбираем стартовую папку
End If
Dim res$
res = Application.GetOpenFilename(MyFilter, , Title, "Открыть") ' вывод диалогового окна
GetFileName = IIf(VarType(res) = vbBoolean, "", res) ' пустая строка при отказе от выбора
End Function
Хотя при тестировании всплыли недоработки - нужно чуть изменить отказ от выбора файла:
Код:
If ИмяФайла = "False" Then Exit Sub ' выход, если пользователь отказался от выбора файла
и MyFilter скорректировать:
Код:
Optional ByVal MyFilter As String = "Все файлы (*.*),") As String
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 07.06.2011 в 10:34.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение файла из диска на диск Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 20.03.2011 21:21
Линукс/ХР.настроить сетевой диск 1134 Операционные системы общие вопросы 2 30.06.2010 16:09
Автокопирование на сетевой диск valerij Microsoft Office Excel 23 30.11.2009 17:28
Сетевой диск Nic-x Win Api 4 07.02.2008 15:05
Печать текстового файла на сетевой принтер VAbramyak Общие вопросы Delphi 3 06.04.2007 20:16