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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.11.2008, 12:05   #1
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
Вопрос Как в коде VBA возвратить путь к заранее известному файлу?

Есть два файла: файл «Трединг.xls» с листом «Блокнот» и файл «Шаблон(Блокнот).csv» с листом «Шаблон(Блокнот)». Оба лежат в одной папке (P.S. Класть их в разные папки для меня нет смысла, так как они все равно работают в паре).

Я написал следующий код (т.е. это отрывок из большого кода):

' Копия Блокнота в Шаблон Транзака
Application.ScreenUpdating = False: Application.DisplayAlerts = False
Sheets("Блокнот").Select
Range("A1:A14").Select
Selection.Copy
ChDir "C:\Documents and Settings\marenkovm\Мои документы\Маренков\Разное"
Workbooks.Open Filename:= _
"C:\Documents and Settings\marenkovm\Мои документы\Маренков\Разное\Шаблон(Бл окнот).csv"

Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

Код, выделенный красным цветом, открывает файл «Шаблон(Блокнот)», который ОБЯЗАН лежать по этому пути. Но если я запускаю макрос на другом компьютере, а данный файл (естественно) лежит в другой папке, то ничего, конечно же, не работает.
Вопрос? Что нужно изменить, чтобы к файлу «Шаблон(Блокнот).csv» автоматически прописывался бы путь, по которому находится файл «Трединг.xls»???
Maxx вне форума
Старый 19.11.2008, 12:59   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Workbooks.Open Filename:= ActiveWorkBook.Path & "\Шаблон(Блокнот).csv"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 19.11.2008, 13:05   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Application.ScreenUpdating = False: Application.DisplayAlerts = False

    PS = Application.PathSeparator: TemplatePath = ThisWorkbook.Path    ' получаем путь этого файла
    If Right(TemplatePath, 1) <> PS Then TemplatePath = TemplatePath & PS    ' дописываем в конец пути символ "\"
    TemplatePath = TemplatePath & "Шаблон(Блокнот).csv"    ' добавляем к пути имя файла

    Dim Template As Workbook:    Set Template = Workbooks.Open(TemplatePath) ' пытаемся открыть файл "Шаблон(Блокнот).csv"
    If Template Is Nothing Then MsgBox "Не удалось открыть файл  " & TemplatePath, vbCritical, "Ошибка": Exit Sub ' выход из процедуры, если файл не удалось открыть
    
    ' если код продолжает выполняться, значит, файл "Шаблон(Блокнот).csv" открылся
    ThisWorkbook.Worksheets("Блокнот").Range("A1:A14").Copy ' копируем диапазон ячеек из этого файла (в котором выполняется код)
    
    Template.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=False ' вставляем значения ячеек
    
    Template.Close True ' закрываем файл "Шаблон(Блокнот).csv" с сохранением изменений
    ' или    Template.Save  ' сохраняем файл "Шаблон(Блокнот).csv" (не закрывая его)
End Sub
EducatedFool вне форума
Старый 19.11.2008, 13:10   #4
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

ВОТ ЭТО ДА-А-А!!! Все замечательно работает! СПАСИБО!
Maxx вне форума
Старый 19.11.2008, 13:17   #5
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

EducatedFool, и Вам Спасибо! Тоже замечательно работает!

Может быть и я когда-нибудь дойду до такого мастерства!
Maxx вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить путь к файлу Manya Общие вопросы Delphi 5 22.05.2012 16:12
Как зная путь к файлу показать стандартное конт. меню hoza_syl Общие вопросы Delphi 6 11.07.2008 14:54
Как узнать полный путь к *.ехе файлу SeЯgey Помощь студентам 3 27.05.2008 09:46
Как вытащить путь к файлу UnD)eaD)Snake Общие вопросы Delphi 13 20.08.2007 22:09
Как указать путь компилируемуму exe файлу shurik_7866 Общие вопросы Delphi 2 18.07.2007 23:24