| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменение макроса VBA для использования внутренних подпапок

Изменение макроса VBA для использования внутренних подпапок

Ответ
Поиск в этой теме
Непрочитано 10.03.2021, 21:47 #1
Изменение макроса VBA для использования внутренних подпапок
pro9
 
Конструктор
 
Уфа
Регистрация: 01.09.2012
Сообщений: 80

Добрый день,

Не могли бы вы мне помочь в изменении макроса(приведенного ниже), который заменяет файлы *.xlsm на *.xlsx , чтобы он использовал папки внутри (всех нижних уровней) заданной папки тоже?

Спасибо.

Sub MakeXLSX()
Dim sPath As String, sName As String
Dim wkbk As Workbook, sName1 As String
sPath = "C:\Data\Test\" '<== change to your path
On Error GoTo Errhandler
If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
sName = Dir(sPath & "*.xlsm")
Application.EnableEvents = False
Do While sName <> ""
sName1 = Replace(LCase(sName), ".xlsm", "")
Application.DisplayAlerts = False
Set wkbk = Workbooks.Open(sPath & sName)
wkbk.SaveAs Filename:=sPath & sName1 & ".xlsx", FileFormat:=xlOpenXMLWorkbook
wkbk.Close SaveChanges:=False
Application.DisplayAlerts = True
sName = Dir()
Loop
'Kill sPath & "*.xlsm"
Errhandler:
Application.EnableEvents = True
End Sub
Просмотров: 5774
 
Непрочитано 11.03.2021, 00:22
#2
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 7,097


pro9, чего-то лень разбираться .... если нужен просто результат - то подойдет групповое переименование файлов *.xlsm на *.xlsx, эта функция есть в "total commander", да и наверное еще в каких либо файловых менеджерах...
или что-то дает именно "сохранить как"?
v.psk вне форума  
 
Непрочитано 11.03.2021, 04:23
#3
Автон

СЦБ
 
Регистрация: 09.03.2006
Иркутск
Сообщений: 78


https://www.cyberforum.ru/vba/thread1720129.html

https://forum.dwg.ru/showthread.php?t=60300

https://www.programmersforum.ru/showthread.php?t=144293
Автон вне форума  
 
Автор темы   Непрочитано 11.03.2021, 19:13
#4
pro9

Конструктор
 
Регистрация: 01.09.2012
Уфа
Сообщений: 80


Помогли кодом на сайте Microsoft Communities https://answers.microsoft.com/en-us/...=1615478529296
Sub MakeXLSX()

' Top folder to process

Const sPath = "C:\DataTest"

Dim fld As Object

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.EnableEvents = False

On Error GoTo ExitHere

Set fld = CreateObject("Scripting.FileSystemObject").GetFolder(sPath)

ProcessFolder fld

ExitHere:

Application.EnableEvents = True

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

Sub ProcessFolder(fld As Object)

Dim sPath As String

Dim sName As String

Dim wBk As Workbook

Dim sfl As Object

sPath = fld.Path

If Right(sPath, 1) <> "\" Then

sPath = sPath & "\"

End If

sName = Dir(sPath & "*.xlsm")

Do While sName <> ""

Set wBk = Workbooks.Open(sPath & sName)

wBk.SaveAs Filename:=sPath & Replace(sName, ".xlsm", ".xlsx"), FileFormat:=xlOpenXMLWorkbook

wBk.Close SaveChanges:=False

sName = Dir

Loop

Kill sPath & "*.xlsm"

For Each sfl In fld.Subfolders

Call ProcessFolder(sfl)

Next sfl

End Sub


Цитата:
Сообщение от v.psk Посмотреть сообщение
сли нужен просто результат - то подойдет групповое переименование файлов *.xlsm на *.xlsx, эта функция есть в "total commander"
Эта функция не подходила, так как оставляла макросы в файле.
pro9 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменение макроса VBA для использования внутренних подпапок

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фатальная ошибка при попытке загрузки макроса Inhu Программирование 23 02.10.2017 12:13
Заброшенный склад ГСМ (возможность дальнейшего использования) Paykay Прочее. Отраслевые разделы 4 13.09.2016 18:46
Как задать процент использования элементов Vofff4ik Лира / Лира-САПР 8 14.03.2014 12:48
Возможность использования инженерно геологических изысканий стадии П для ИГИ для стадии Р.Д. Иван235 Прочее. Архитектура и строительство 4 16.10.2013 22:56