Удалить содержимое листа макросом

Автор Nikem79, 16 июля 2012, 15:20

0 Пользователи и 1 гость просматривают эту тему.

JohnSUN

Цитата: Nikem79 от 17 июля 2012, 16:14как это обойти...
Очень просто! Расскажи подробно, что ты пытаешься сделать, покажи имеющуюся книгу с тестовыми данными и, скорее всего, через пару часов получишь приемлемое решение.
Просто ты поступил так, как обычно поступают новички на этом форуме: побоялся, что на слишком сложный вопрос никто не станет отвечать, и старательно обрезал его с двух сторон до очень упрощенной версии - выбросил начало и конец, а спросил только про середину...
На будущее - не делай так. Гораздо интереснее поломать голову над сложной задачкой (если она хорошо сформулирована), чем в очередной раз рассказывать очень простые вещи...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Nikem79

Это кстати зависит от контингента форумчан, готовых помочь) Зачастую на форумах когда выкладываешь сложную задачу, никто даже не отвечает. В большинстве случаев чем проще задача, тем больше шансов на то что кто-то откликнется)) Респект вам JohnSUN за отзывчивость :)

Задача была простая, есть файл из трёх листов, в него забивают разные данные клиентов, контакты и заказанные позиции в магазине. Эти данные я сначала копирую на чистый лист, потом из него делаю выборку данных в бланк заказов. На бланк поставил защиту, чтобы не исправляли в нём и не вальнули формулы ссылки на буферный лист.

С макросами столкнулся в первые, но давно хотел начать. Собственно после недели мучений изучений, удалил всё что там наковырял и с рекордером макросов провёл всю процедуру от начала до конца. Сложился макрос вполне съедобный, осталось добавить в код очистку листа выше описанную, приписать слушатель номера строки чтобы он добавлялся в номер заказов и собственно всё. Если вдруг кому нужна эта портяка кода, могу выложить)

Большое спасибо за помощь! :)

spyAndrey

Лист в Draw удаляется таким же способом?

JohnSUN

Очень похожим. Разница только в названиях листов - для Calc это Sheets,  а для Draw - Pages. Поэтому код очень похож, но все-таки отличается:
Sub delSub delPageByName(sPName As String)
Dim oDrawPages As Variant
oDrawPages = ThisComponent.getDrawPages()
If oDrawPages.hasByName(sPName) Then oDrawPages.remove(oDrawPages.getByName(sPName))
End Sub


И добро пожаловать на форум!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

spyAndrey

#19
Спасибо большое.
Немного не в тему, но всё таки, где узнать структуру компонентов или отрисованную на худой конец как эта:
http://smvn.ru/JS-1.3-client-guide/graphics/nav_hier.gif
а лучше грамотное описание. У Питоньяка не нашёл ничего подобного, во всяком случае в том что имею и читаю.
вот что то типа этого:
http://api.libreoffice.org/docs/idl/ref/namespaces.html

spyAndrey

Вообще (опять не в тему, но всегда же можно куда перенести :)
нашёл вот такую страницу:
http://www.script-coding.com/OOo/OOo_HelloWorld.html
а на ней ооочень полезную инфу, хорошее подспорье при написании макросов:
Простой способ выяснить, что может делать данный объект - это вызов следующих трех методов:

MsgBox ThisComponent.dbg_methods
MsgBox ThisComponent.dbg_supportedInterfaces
MsgBox ThisComponent.dbg_properties


JohnSUN

Странно, что ты это у Питоньяка не увидел...
Это в главе  "3.6.8. What methods, properties, interfaces, and services are supported?", Listing 3.10: What can this object do?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

spyAndrey

Списибо, но читал в первую очередь переведённое...