li11amy
Участник

Offline
Сообщений: 6
|
Добрый день! Есть макрос для ворда/экселя, который необходимо заставить работать в либре офисе. Подскажите, это реально? Может быть кто-то из форумчан научит или возьмется помочь?
Или надо написать новый, или как-то иначе решить задачу - может будут идеи?..
Задача - вставка текстов из ворд в эксель, одна ячейка = страница (разделение разрывом страниц) с сохранением форматирования внутри абзацев.
Заранее спасибо за помощь!
|
|
|
Записан
|
|
|
|
kompilainenn
|
Задача - вставка текстов из ворд в эксель цель сего действия? Есть макрос для ворда/экселя, который необходимо заставить работать в либре офисе где файл с макросом?
|
|
|
Записан
|
|
|
|
Yakov
|
Задача - вставка текстов из ворд в эксель В данном случае - из Writer в Calc
|
|
|
Записан
|
|
|
|
mikekaganski
|
с сохранением форматирования внутри абзацев.
Невозможно.
|
|
|
Записан
|
|
|
|
|
mikekaganski
|
Ну, если речь только о форматировании символов, тогда возможно. А форматирование параграфов (например, выравнивание влево/вправо) не установишь разное для разных параграфов в одной ячейке. См., например, здесь.
|
|
|
Записан
|
|
|
|
economist
|
Мой мозг отказывается помогать :-) пока не будет раскрыт смысл данной задачи. Чтобы "то же самое" было на экране, но с другим расширением (не ODT, а ODS???).
Вот обратная задача - имеет и смысл, и решение. Договоры часто должны выглядеть красиво, как книги или Библия. Обычно считают что-то в таблицах, а текст верстают - в редакторах текста. Есть куча инструментов для вставки фрагментоа одного - в другое. Но целиком вставлять страницу, скажем, чтобы что-то пересчитать - неправильно ни разу.
|
|
|
Записан
|
Руб. за сто, что Питоньяк Любит водку и коньяк! Потому что мне, без оных, - Не понять его никак...
|
|
|
economist
|
И да, покажите макрос! Две волшебные строчки вверху модуля с макросами: Option VBASupport 1 Option Compatible
делают 70% кода из MSO - работоспособным в LibreOffice.
|
|
|
Записан
|
Руб. за сто, что Питоньяк Любит водку и коньяк! Потому что мне, без оных, - Не понять его никак...
|
|
|
li11amy
Участник

Offline
Сообщений: 6
|
цель сего действия? Работа такая. Авторы сдают тексты в .doc(х), клиент хочет их в виде таблицы .xls(x). Их достаточно много, чтобы в ручную это делать было затруднительно. где файл с макросом? Прошу прощения, не нашла как убрать под кат. Sub Auto_Import_Excel_2() 'ТРЕБУЕТСЯ ПОДКЛЮЧИТЬ БИБЛИОТЕКУ Microsoft Excel 12.0 (или 14.0) Object Library в Tools=>References With Application .ScreenUpdating = False .DisplayAlerts = False .StatusBar = False End With Dim obj_Excel As Excel.Application 'Объектные переменные для MS Excel Dim obj_Workbook As Excel.Workbook 'Для книги Dim obj_Worksheet As Excel.Worksheet 'Для листа Dim obj_Range As Word.Range 'Для текста в MS Word Dim odj_Doc As Word.Document 'Для документа в MS Word основного Dim odj_Doc_time As Word.Document 'Для документа в MS Word временного Dim NumPages As Long Set odj_Doc = ActiveDocument 'Запустим MS Excel Set obj_Excel = New Excel.Application Set obj_Workbook = obj_Excel.Workbooks.Add 'Добавим в Excel новую книгу Set obj_Worksheet = obj_Workbook.Worksheets(1) 'Присвоим переменной ссылку на первый лист книги NumPages = ActiveDocument.ComputeStatistics(wdStatisticPages) 'Количество страниц в Word
For i = 1 To NumPages
Documents.Add DocumentType:=wdNewBlankDocument 'Добавить временный документ Set odj_Doc_time = ActiveDocument
odj_Doc.Activate Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i Set rgePages = Selection.Range Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i rgePages.End = Selection.Bookmarks("\Page").Range.End rgePages.Select: Selection.Copy odj_Doc_time.Activate: Selection.PasteAndFormat (wdFormatOriginalFormatting) Selection.WholeStory With Selection.Find .Text = "^p" .Replacement.Text = "+++" .Execute Replace:=wdReplaceAll End With With Selection.Find .Text = "^m" .Replacement.Text = "" .Execute Replace:=wdReplaceAll End With Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i Set rgePages = Selection.Range Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i rgePages.End = Selection.Bookmarks("\Page").Range.End rgePages.Select rgePages.Copy obj_Worksheet.Cells(i, 1).Select: ActiveSheet.Paste obj_Worksheet.Cells.Replace What:="+++", Replacement:="" & Chr(10) & "", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False odj_Doc_time.Close (False) 'Закрыть документ Next i obj_Excel.Visible = True With Application .ScreenUpdating = True .DisplayAlerts = True .StatusBar = True End With End Sub
Ну, если речь только о форматировании символов, тогда возможно Важно чтобы сохранялись абзацные отступы и списки, если есть. Все остальное не проблема поправить массово уже в таблице.
|
|
|
Записан
|
|
|
|
li11amy
Участник

Offline
Сообщений: 6
|
Две волшебные строчки вверху модуля с макросами: Пробовала, не помогает (вставляла в самое начало макроса)
|
|
|
Записан
|
|
|
|
li11amy
Участник

Offline
Сообщений: 6
|
Чтобы "то же самое" было на экране, но с другим расширением (не ODT, а ODS???) Чтобы текст - обычный текст с заголовками и подзаголовками - оказался в ячейке таблицы. Зачем - вопрос отчасти философский, но вообще затем, чтобы потом эту таблицу подгрузить и получить тексты на сайте без закидывания через админку поштучно, например. Но это уже за пределами моих полномочий и задач. Моя проблема - хочу вернуться на ubuntu, которой много лет пользовалась, а тут "познакомилась" в 10-й, и маломощный нетбук постоянно тупит. Этот макрос - последняя преграда на пути. Впрочем, это тоже лирика за рамками стоящей задачи))))
|
|
|
Записан
|
|
|
|
mikekaganski
|
Ну, если речь только о форматировании символов, тогда возможно Важно чтобы сохранялись абзацные отступы и списки, если есть. Все остальное не проблема поправить массово уже в таблице. Оба параметра - свойства абзаца (нумерация и отступы). Я могу себе представить, как кто-то пробует создать макрос, который бы анализировал соответствующие параметры в исходном тексте, и вставлял "скорректированный" текст, где "нумерация" и "отступы" были бы выполнены в тексте, к примеру отступы - пробелами. Но я даже не буду начинать про "правильность" такого подхода, просто вздохну насчёт того, сколько времени займёт вычистка багов такого кода. Лучше повторю своё заявление из ответа #3: невозможно.
|
|
|
Записан
|
|
|
|
li11amy
Участник

Offline
Сообщений: 6
|
Я могу себе представить, как кто-то пробует создать макрос, который бы анализировал соответствующие параметры в исходном тексте, и вставлял "скорректированный" текст, где "нумерация" и "отступы" были бы выполнены в тексте, к примеру отступы - пробелами. Не надо никаких сложностей, просто текст их файла в формате docx или аналогичном вставить "как есть" в calc так, чтобы 1 страница текстового документа (тексты разделены разрывом страницы) = 1 ячейке таблицы, а форматирование абзаца оставалось на месте. В связке ворд + эксель все работает, то есть это возможно. Вопрос в том, что нужно скорректировать в макросе, чтобы работало в связке writer + calc...
|
|
|
Записан
|
|
|
|
|
|