Страницы: 1 2 След.
RSS
Сохранение файла с помощью VBA с названием ячейки
 
Всем доброе время суток! Есть макрос, после обработки которого вылетает окно с сохранением (имя файла берется автоматически с ячейки "А31" ;) :
Код
Имя_для_сохранения = [A31]
    FName = Application.GetSaveAsFilename(InitialFileName:=Имя_для_сохранения, _
                                          FileFilter:="Excel Files (*.xls), *.xls", _
                                          Title:="Выберите имя файла для сохранения")
    If VarType(FName) <> vbBoolean Then ThisWorkbook.SaveAs FName
НО..
как переписать макрос, чтобы файл сохранялся автоматически (без подтверждения кнопки: "Сохранить" ;)  в папку откуда открыт файл?
Заранее спасибо.
 
...
Код
sub ggg()
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [A31].Value & ".xls"
end sub
 
Большое спасибо!
 
Здравствуйте.
К продолжению эмой темы.
Надобно сохранить файл под именем ячейки А1, но и папка сохранения должна выбираться автоматически по ячейки А1. То есть путь сохранения C:\Заказы\ "Имя конечной папки А1"\ "названия файла А1.xls.
Спасибо
 
socha пишет:
Цитата
сохранить файл под именем ячейки А1, и папка сохранения должна выбираться автоматически по ячейки А1
Так это-ж ещё проще
Код
ActiveWorkbook.SaveAs Filename:=[A1].Value & ".xls" 
Согласие есть продукт при полном непротивлении сторон
 
В оригинале у меня место сохранения файла C:\Работа\Продажа\Клиенты\А1"Папка клиента, имя которой совпадает с ячейкой А1.
Но в этой ячейке я указываю не весь путь, а только имя последней папки.  
Спасибо
 
Цитата
socha пишет: в этой ячейке я указываю...имя последней папки
а имя файла где указываете? Тоже в это-же ячейке (см пост #4)?
Согласие есть продукт при полном непротивлении сторон
 
Вот по такому примеру нужно сделать макрос. Подставил свои параметры - все работает, только место сохранения, тоже должно быть переменное по указаной ячейке
Код
Sub Макрос1() 
Dim a$, d$ 
a = Cells(1, 1) 'a1 name 
d = Cells(2, 1) 'a2 data 
ActiveWorkbook.SaveAs Filename:= _ 
"C:\" & a & d & ".xls" 
End Sub
Спасибо
 
Вы же практически все сделали
Код
ActiveWorkbook.SaveAs Filename:="C:\" & a & "\" & d &  ".xls" 
Согласие есть продукт при полном непротивлении сторон
 
Спасибо, все заработало. Просто не мог разобраться с синтаксисом
 
Еще символы надо убрать, которые в имени файла нежелательны

Код
Public Function УбратьСимволыИмяФайла(s)

s = Replace(s, ".", "_")
s = Replace(s, "/", "_")
s = Replace(s, "\", "_")
s = Replace(s, Chr(34), "_")

УбратьСимволыИмяФайла = s

End Function 
 
Добрый день.
Вижу что тема не очень свежая, но авось...)
Использую формулу товарища k61 (спасибо ему большое):
Код
sub ggg()
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [A31].Value & ".xls"
end sub

К сожалению есть одно неудобство, данный код делает копию файла с указанным в ячейке названием и переходит в эту копию, закрывая изначальный файл. Может есть  у кого код, который делал бы копию файла, не открывая его и не закрывал бы первичный файл?
Заранее благодарен.
С ув. athe.
Изменено: athe - 19.06.2015 10:41:32
 
Код
ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & [A31].Value & ".xls"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist
Большое спасибо.
Стыд мне и позор... Пошёл дальше читать Слепцову)).
 
Цитата
The_Prist написал:
19 Июн 2015 10:49:13

Код
ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & [A31].Value & ".xls"
Код
ThisWorkbook.SaveCopyAs "C:\Folder\" & NewName
в цикле For..Next выдает ошибку:
Run-time error '-2147417848 (80010108)':
Automation error
The object invoked has disconnected from its clients.

Имя файла NewName изменяется в цикле:
Код
NewName = "Saved_" & x & ".xlsm" 'x - изменяемый циклом параметр

В чем причина может быть? (DoEvents - не помогает).
Изменено: RNEtidi - 12.04.2016 16:37:05
 
RNEtidi, зачем цитируете всё подряд? Даже подпись. На чём хотели сделать акцент? Кнопка цитирования не для ответа.
И код следует оформлять соответствующим тегом - видели, как у других это выглядит? Ищите такую кнопку и исправьте своё сообщение в части цитаты и оформления. Спасибо!
 
Цитата
RNEtidi написал: В чем причина может быть?
- да хоть в том, что уже выше озвучивалось - в недопустимом имени файла.
 
Hugo, в моем случае в чем недопустимость имени файла?
 
Никто не видит, что у Вас в ячейке, из которой берётся имя файла )) Чему равна переменная х?
 
Код
For x=1 to n 'n - берется из текстбокса формы: n = Val(Textbox1.Text)
NewName = "Saved_" & x & ".xlsm" 'x - изменяемый циклом параметр
DoEvents
ThisWorkbook.SaveCopyAs "C:\Folder\" & NewName
Next x
x - изменяемый циклом параметр
 
Цитата
Юрий М написал: Чему равна переменная х?
 
ну для начала x = 1. Потом x = 2. И так далее до n. К примеру n = 5, тогда x изменяется от 1 до 5. Цикл For..Next так работает.
 
Сорри, подслеповат вероятно... :)
Тогда должно работать без ошибок, если запись в каталог разрешена.
 
запись в каталог не запрещена, но ошибка все равно выскакивает.
 
Цитата
RNEtidi написал:
но ошибка все равно выскакивает.
уникальность имени?
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
Цитата
RNEtidi написал:
Run-time error '-2147417848 (80010108)':
Automation error
The object invoked has disconnected from its clients.
 
для начало попробуйте все убрать.
Код
ThisWorkbook.SaveCopyAs "C:\Folder\" & "Saved_" & 1 & ".xlsm"
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
в этом то вся и прелесть: вне цикла все хорошо сохраняет. а в теле цикла при попытке сохранить выскакивает вышеназванная ошибка и excel напрочь зависает.
 
Код
ThisWorkbook.SaveCopyAs "C:\Folder\" & NewName true
а так попробуйте


файл пример сделайте
у меня простая версия Экселя, в ней нет кнопки "Прочитать мысли и сгенерировать файл пример"
 
для чего писать true после имени файла?
пример прикрепил. Одну копию сохраняет, а на второй выдает ошибку.
Изменено: RNEtidi - 12.04.2016 22:35:42 (Перезалил файл. Новый файл пишет log)
Страницы: 1 2 След.
Наверх