ПредишенСледващото

За да използвате този макрос на всеки лист в работна книга на Excel, създаване на един бутон и присвояване на макро да го SohranitListVFayl.

Когато стартирате макроса (натиснете бутона) ще се появи името на диалоговия прозорец за избор на файл, за да се спаси, а след това на текущия баланс ще бъде записан под посоченото име в избраната папка.

PS: Някой може да каже, че за да запазите баланс на файла в обектния модел на Excel има метод SaveAs. приложим към обекта на работния лист.

Но, странно, изпълнение на код ActiveSheet.SaveAs на "<имя файла>"Води до запазване на цялата книга, което е еквивалентно на използването на код ActiveWorkbook.SaveAs"<имя файла>"

Защо това е метод за запазване работи толкова нелогично - лично аз не разбирам (Очевидно, Microsoft има нещо твърде умен от половината)

Уверете се, че всички макроси, включени в настройките на Excel.
Преди стартиране на файла с макроси, направете следното:

> Намерете най-макро файлове в папката
> Щракнете с десния бутон върху файла - Настройки - Unlock - OK
> И едва след това да се започне

Добър ден, супер макро. Само моля да ми кажете как да го накарам да се вземат данни при запазване на името на файла на дадена клетка напрежение. Sheet1, A1?

Под SohranitListVFayl ()
На Грешка Resume Следваща
"Името на подпапки, която по подразбиране ще бъдете подканени да запазите файл
Конст REPORTS_FOLDER = "Отчети"
"Създаване на папка за файла, ако той все още няма
MKDIR ThisWorkbook.Path "" REPORTS_FOLDER
"Избери началото местоположение
ChDrive Left (ThisWorkbook.Path, 1): CHDIR ThisWorkbook.Path "" REPORTS_FOLDER

"Оттеглянето на диалоговия прозорец, за да поиска от името на запазения файл
Име на файл = Application.GetSaveAsFilename ( "otchot.xls", "Excel Reports (* .xls),". _
"Въведете името на файла за отчета", "Save")
"Ако потребителят е отказал да изберете име на файла - Отказ на запис на файл лист
Ако VarType (Име на файл) = vbBoolean Тогава Exit Sub

"Затваряне на записания файл
"(Премахване на следния ред, ако затворите създаден файлът не е задължително)
ActiveWorkbook.Close False
Крайна сметка, ако
End Sub

Добър ден! Сблъсквайки се с проблема и да се намери се издава вашия сайт. Надявам се, че много за вашата помощ.

Има маса, макроса изпълнява някаква манипулация на масата, и съхранява файловете в папката. Необходимо е, че в процеса създадете папка с текущата дата (дд) и вече е създадена папка, съдържаща променлива (usrnm) в името си. Macro да работи, докато не добавите за създаване на папката в папката.

Дим usrnm Както стринга
usrnm = Range ( "N6"). Value
Дим дд Както стринга
DD = Формат (Сега "дд мм гггг", vbUseSystemDayOfWeek)
Дим TDD Както стринга
TDD = Формат (Сега "дд мм гггг (hh'mm'ss)")
Дим Х булева
х = Len (Dir ( "D: \ ________ работа" дд "" usrnm, vbDirectory))
Ако usrnm = "" И Лен (Dir ( "D: \ ________ работа \ грешка", vbDirectory)) = 0 Тогава
Защитен режим "D: \ ________ работа \ грешка"
ActiveWorkbook.SaveAs ( "D: \ ________ работа \ грешка") "Error_" TDD, файлов формат: = 51
Крайна сметка, ако
ActiveSheet.Range ( "$ $ 5: $ AE 9999 $") AutoFilter поле :. = 14, Criteria1: = usrnm
Ако х = False След това
Защитен режим "D: \ ________ работа" дд "" usrnm
ChDrive Left ( "D: \ ________ работа", 1): CHDIR "D: \ ________ работа" дд "" usrnm
ActiveWorkbook.SaveAs bsnm "_" usrnm "_" TDD, файлов формат: = 51
Крайна сметка, ако
Ако х = вярно, тогава
ChDrive Left ( "D: \ ________ работа", 1): CHDIR "D: \ ________ работа" дд "" usrnm
ActiveWorkbook.SaveAs bsnm "_" usrnm "_" TDD, файлов формат: = 51
Крайна сметка, ако

Добре дошли Kairat.
Тя се нуждае от различен макро (макро, описан в тази статия, прави нещо доста по-различно)
Вашият макро Също така е необходимо да се променят - много файлове в един ред Workbooks.Open тип код "C:. \ * XLSX" не се отваря
(Необходима цикъл на файловете)
Ние можем да направим макро ред. Или посетете форумите за Excel, ако искате да плащате.

Добър ден, аз трябва да променя макрос, за да го копират, а не от една книга, но няколко, и да ги вмъкнете в един лист, една след друга INF. вертикално, т.е. надолу

Под Get_Value_From_Book2 ()
Дим sShName Както стринга, sAddress Както стринга, vData
Application.ScreenUpdating = False
Workbooks.Open "C: \ * XLSX."
sAddress = "А1: L26"
vData = Sheets ( "eNodeBOutdoor перка"). Range (sAddress) .Value
ActiveWorkbook.Close False
Ако IsArray (vData) След това
[А1] .Resize (UBound (vData, 1), UBound (vData, 2)). Стойност = vData
още
[А1] = vData
Крайна сметка, ако
Application.ScreenUpdating = True
End Sub

Под Save ()
На Грешка Resume Следваща
"Името на подпапки, която по подразбиране ще бъдете подканени да запазите файл
Конст REPORTS_FOLDER = "изпълнителният"
"Създаване на папка за файла, ако той все още няма
MKDIR ThisWorkbook.Path "" REPORTS_FOLDER
"Избери началото местоположение
ChDrive Left (ThisWorkbook.Path, 1): CHDIR ThisWorkbook.Path "" REPORTS_FOLDER

"Оттеглянето на диалоговия прозорец, за да поиска от името на запазения файл
Необходимо = Application.GetSaveAsFilename ([e4] ".xlsm", "Изпълнителна (* .xlsm)". _
"Въведете името на файла за отчета", "Save")
"Ако потребителят е отказал да изберете име на файла - Отказ на запис на файл лист
Ако VarType (Име на файл) = vbBoolean Тогава Exit Sub

Опитах се да пиша на XLSX тип да xlsm и отдолу набор запазва като книга с включени макроси, но в крайна сметка той пише, че след по-долу.
Прилагам макрос, който се опитах да променя. Аз не съм особено в писането на макроси, така че за себе си интерес, за да улесни работата.

Той пише: "Следните компоненти не може да бъде записан в макро-свободен книга:
-проект VB
За да запишете файл с всички компоненти, натиснете "Не", а след това в "тип файл", изберете типа на файла, макро-поддръжка "

Ако вашите макроси в модул лист - те са копирани заедно с листа, и да работи.
Ако макросите в модула - това е, разбира се, като същевременно се поддържа баланс във файла, тези модули няма да бъдат прехвърлени на нов файл

Подкрепете проекта - споделете линка, благодаря!