Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Ноябрь 2017, 15:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: очистка диапазона  (Прочитано 427 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Underrating
Новичок
*
Offline Offline

Сообщений: 11


« Стартовое сообщение: 13 Июнь 2017, 10:01 »

Добрый день! хотел очистить диапазон A1:B100 одной командой. Можно по одной ячейке но так долго.


Код:
Sub Clear
Dim oSheets As Variant
Dim oSheet As Variant
Dim oRange As Variant
oSheets = ThisComponent.getSheets()
oSheet = oSheets.getByIndex(0)
oSheet.getCellRangeByPosition(0, 0,1,99).Clear   ' Предполагаю что нужна другая команда а не Clear


End Sub
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 359


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 13 Июнь 2017, 10:42 »

Да, этот метод называется clearContents, у него всего один параметр "что именно чистим"

И добро пожаловать на форум!
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Underrating
Новичок
*
Offline Offline

Сообщений: 11


« Ответ #2: 13 Июнь 2017, 11:13 »

Спасибо! В итоге получил
Sub Clear
   
   ThisWorkbook.Sheets(1).Activate
   Range("A1:B100").Select
   Selection.ClearContents
         
End Sub   
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 359


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 13 Июнь 2017, 12:22 »

Эй, я про Activate и Selection ничего не писал!
Должно было получиться
Код:
Sub Clear
  ThisComponent.getSheets().getByIndex(0).getCellRangeByName("A1:B100").clearContents(1023)
End Sub
Записан

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

Сообщений: 745


« Ответ #4: 13 Июнь 2017, 12:47 »

Чисто для коллекции: если в LibreOffice 5 вверху модуля указать

Option VBASupport 1

то можно очищать как в Excel VBA, двумя понятными словами:  

[A1:B100].Clear

Но гораздо полезнее именовать диапазон ячеек (дать Название, см. левый верхний угол - Управление названиями - Добавить...) Тогда вообще сработает такая красота, причем независимо от текущего листа:

[ИМЯ].Clear
[ИМЯ].ClearContents
[ИМЯ].ClearFormats
[ИМЯ].ClearComments

PS: Не путайте Названия с Данные - Задать диапазон..., это другие "диапазоны"...
« Последнее редактирование: 13 Июнь 2017, 12:50 от economist » Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!