PDA

Показать полную графическую версию : [решено] как в экселе автоматически удалить строки


vanoman
23-08-2014, 13:07
Подскажите пож-та. Мне надо удалить строки с номера 65000 по 400 000 . Мышкой все выделять долго. может есть функция, которая заданный интервал строк удаляет?

Iska
23-08-2014, 17:03
Есть ;). Надо только её написать:
Sub DeleteRows()
ThisWorkbook.ActiveSheet.Rows.Item("65000:400000").Delete
End Sub

вставить в модуль «ThisWorkBook» («ЭтаКнига») искомой рабочей книги, сделать активным потребный рабочий лист и исполнить процедуру.

vanoman
23-08-2014, 18:05
Iska, работает))) респект

Iska
23-08-2014, 18:19
vanoman, поскольку у нас всего одна строчка («ThisWorkbook.ActiveSheet.Rows.Item("65000:400000").Delete»), в принципе, можно попробовать использовать окно «Immediate» — Alt-F11, Ctrl-G (ежели таковое осталось в Excel 2013), разумеется, заменив «ThisWorkbook» на «ActiveWorkbook» и сделав предварительно активными потребные рабочую книгу и лист.

vanoman
26-08-2014, 17:12
Iska, а может ещё чуть - чуть поможете
взять этот файл
можно чтобы с 11-50 ячейку , там 73 столбца, надо из каждого столбца удалить 20 чисел, но не сплошняком , например с 11-31 ячейку. а рандомно т.е. то 11 ячейка, то 20 и так далее.

Iska
27-08-2014, 00:45
«Удалить» — понимать как «очистить»? «20» — стабильное значение или произвольное? Диапазон «A11:BU50» — стабильный диапазон или произвольно указан? Все ячейки диапазона заполнены или могут быть и пустые?

Например, так:
Option Explicit

Sub ClearRandomCellsInSelectionByColumns()
Dim intCount As Integer

Dim objColumn As Range
Dim objRange As Range

Dim i As Integer

Dim objArrayList As Object


intCount = 20

Randomize Timer

Set objArrayList = CreateObject("System.Collections.ArrayList")

For Each objColumn In Selection.Columns
For Each objRange In objColumn.Rows
objArrayList.Add objRange
Next

For i = 1 To objColumn.Rows.Count - intCount
objArrayList.RemoveAt Int(objArrayList.Count * Rnd())
Next

For Each objRange In objArrayList
objRange.Clear
Next

objArrayList.Clear
Next

Set objArrayList = Nothing
End Sub

vanoman
27-08-2014, 14:06
«Удалить» — понимать как «очистить»? «20» — стабильное значение или произвольное? Диапазон «A11:BU50» — стабильный диапазон или произвольно указан? Все ячейки диапазона заполнены или могут быть и пустые? »

да, очистить. 20 это стабильное значение. указан произвольно) там все заполнены.
Макрос работает,как часы:)




© OSzone.net 2001-2012