очистка диапазона

Автор Underrating, 13 июня 2017, 10:01

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

Underrating

Добрый день! хотел очистить диапазон 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

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

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

Underrating

Спасибо! В итоге получил
Sub Clear
   
   ThisWorkbook.Sheets(1).Activate
   Range("A1:B100").Select
   Selection.ClearContents
         
End Sub   

JohnSUN

Эй, я про Activate и Selection ничего не писал!
Должно было получиться
Sub Clear
  ThisComponent.getSheets().getByIndex(0).getCellRangeByName("A1:B100").clearContents(1023)
End Sub
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

economist

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

Option VBASupport 1

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

[A1:B100].Clear

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

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

PS: Не путайте Названия с Данные - Задать диапазон..., это другие "диапазоны"...
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...