• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Vb&ms Excel

  • Автор темы Kupu4
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kupu4

Всем доброго дня!
Столкнулся с необходимостью написания макрос для Excel'я. С программированием в принципе знаком(AS3), но синтаксиса VB не знаю вообще...
сама задача проста как 3 рубля. надо переконвертировать ods файлы в xls. я установил плагин для открытия ods файлов через Excel. необходимо переконвертировать 100+ файлов. руками делать как то лень) и мне пришла в голову идея написания макроса под это дело. я в принципе понимаю суть того что надо сделать, но не понимаю как...

вот мои предположения:
1) более простой способ. можно открывать все файлы в ручную, надо только автоматически их сохранять(так как все файлы обозваны черт знает как и имена менять не надо, а оставить такими же как и были).
при импорте ods файла он создает xls файл с чудесным названием "Temprorary ODF", но при попытке его обратно экспортировать в ods он по умолчанию предлагает исходное имя ods файла(я думаю тут то и надо макросом это имя как то забрать у него). далее добавить к этому имени расширение xls и вуа ля, я получаю то что хотел.
2) более сложный(по крайней мере для меня). сделать макрос, который самостоятельно бы открывал ods файлы, забирал их имена и сохранял их как xls.

буду рад любой помощи! даже если скинете ссылку на источник, в котором уже решалась схожая задача.
Заранее спасибо!
 
T

Tanya

Нет возможности проверить )))
но как-то так:

Код:
Sub TransferFiles(ByVal strPath As String)

Dim intPos As Integer
Dim strFile As String
Dim xlBook As Workbook

strFile = Dir$("*.ods")
Do While Len(strFile) > 0
intPos = InStrRev(strFile, ".ods")

If intPos > 0 Then
strFile = Left$(strFile, intPos) + "xls"
Set xlBook = Application.Workbooks.Open(strFile)
Call xlBook.SaveAs(strFile, xlExcel8)

xlBook.Close False

End If
strFile = Dir$()
Loop

End Sub


strPath - папка, в которой лежат файлы ods
кааанешна, можно сделать и с выбором файлов, но боюсь быть голословной ))
и накосячить еще больше, чем в приведенном примере )))
(хотя, в глубине души, надеюсь, что тут ошибок минимум)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!