как сохранить файл под другим именем в той же папке?

Программирование на Visual Basic for Applications
Tolyai
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.06.2003 (Пт) 16:43

как сохранить файл под другим именем в той же папке?

Сообщение Tolyai » 13.06.2003 (Пт) 20:51

Помогите, плиз написать на Visual Basic для Exel такой код - мне
нужно сохранить файл например 1.xls как 2.xls Т.е один и тот же файл
но под другим именем в той же папке что и 1.xls. Причем файл мне нужно открывать в разных папках. Как это можно сделать?

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 13.06.2003 (Пт) 21:32

ну типа кинь кнопку на лист и пропиши
Код: Выделить всё
Private Sub CommandButton1_Click()
      ActiveWorkbook.SaveAs "2.xls"
End Sub
Ничто так не ограничивает полёт мысли программиста, как компилятор

Tolyai
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.06.2003 (Пт) 16:43

Сообщение Tolyai » 15.06.2003 (Вс) 8:59

Спасибо за ответ.
Но только это немножко не то. Попробую поподробнее объяснить.
В общем у меня есть исходный файл 1.xsl. В нем я сделал кнопку и назначил кнопке макрос который выполняет сохранение этого файла под другим именем. но сохраняет его он только в прописанный путь. Например
ActiveWorkbook.SaveCopyAs Filename:="C:\1\2.XLS"
Workbooks.Open Filename:="C:\1\2.XLS"
т.е я сохраняю файл 1 под именем 2. открываю 2 и потом вношу туда разные данные. Вот.
А мне нужно чтобы файл сохранялся не в строго прописанном пути, а не зависимо от того в каком месте я его открыл но самое главное в той же папке что и исходный файл. например открыл я D:\папка1\папка2\1.xls и чтобы сохранился он тамже D:\папка1\папка2\2.xls
или открыл я его на С:\папка1\папка2\папка3\1.xls и чтобы сохранился он тамже С:\папка1\папка2\папка3\2.xls
Как написать код чтобы файл сохранялся там же что и открытый?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.06.2003 (Вс) 11:22

Свойство ActiveWorkbook.Path возвратит путь, где сохранен твой файл
Lasciate ogni speranza, voi ch'entrate.

Tolyai
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.06.2003 (Пт) 16:43

Сообщение Tolyai » 16.06.2003 (Пн) 7:28

Ура!!! Заработало!!!! Всем большое спасибо! :D

Я сделал так:
ActiveWorkbook.SaveCopyAs Filename:=ActiveWorkbook.Path + "\2.xls"

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2003 (Пн) 11:14

Только не советую использовать этот код, если файл сохранен в корневой каталог :)
Лучше используй конструкцию IIf(Right$(ActiveWorkbook.Path,1)="\",ActiveWorkbook.Path,ActiveWorkbook.Path & "\") & "2.xls"
Lasciate ogni speranza, voi ch'entrate.

Tolyai
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.06.2003 (Пт) 16:43

Сообщение Tolyai » 16.06.2003 (Пн) 14:58

Но почему у меня все работает... я проверял.
Твоя конструкция тоже работает.
Только у меня компактнее . Может я что-то не допонимаю?... :?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 16.06.2003 (Пн) 15:33

Tolyai
все нормально, в excel в свойство Path всегда без последней слеши.
alibek наверное путает с объектом VB для просмотра дисков, если я не ошибаюсь, то там действительно было такое безобразие: Если файл в корне диска то к Path добавлялось слеш, иначе не добавлялось.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList