|
Удалить диапазон ячеек в Excel через 1с | ☑ | ||
---|---|---|---|---|
0
marshalbratsk
07.12.16
✎
10:21
|
Как удалить диапазон строк Excel?
Пытаюсь так - не работает Для i=0 по КоличествоСтрок-1 Цикл a=ТЗ[i].Индекс1+2; //Получаю индекс начала диапазона (лежит в таблице значений) b=ТЗ[i+1].Индекс1-1; //получаю индекс конца диапазона (лежит в таблице значений) sheet.Rows("A"+a+":"+"A"+b).Delete(); КонецЦикла; ("A"+a+":"+"A"+b) в отладчике показывает как (A15:A15000) т.е. правильно |
|||
1
marshalbratsk
07.12.16
✎
10:22
|
Ошибка при вызове метода контекста (Rows)
sheet.Rows("A"+a+":"+"A"+b).Delete(); |
|||
2
marshalbratsk
07.12.16
✎
10:25
|
с range вместо rows тоже не работает
|
|||
3
Vladal
07.12.16
✎
10:51
|
Попробуй так: начни запись макроса, удали нужные ячейки, останови запись макроса. Потом по Alt-F11 перейди в модуль с макросом и посмотри синтаксис команд.
|
|||
4
Vladal
07.12.16
✎
10:52
|
И удалить именно строки, а не значения этих строк?
Раньше получалось так: sheet.Rows("300:10000").Delete А может, Delete без скобок надо? Попробуй свой пример без скобок. |
|||
5
Vladal
07.12.16
✎
10:57
|
Мне макрос выдал такое:
rows("НачальнаяСтрока:КонечнаяСтрока").select selection.delete shift:=xlUp |
|||
6
Vladal
07.12.16
✎
10:58
|
о. тему на Мисте нашел: Как удалить диапазон строк в excel?
|
|||
7
marshalbratsk
07.12.16
✎
11:11
|
Range("A17102:A17201").Select
Selection.EntireRow.Delete Вот, что выдал VBA Без скобок нельзя {Обработка.bzfВыгрузкаМеждународнойОтчетности.Форма.Форма.Форма(3349,25)}: Неопознанный оператор sheet.range(ab).Select<<?>>; (Проверка: Толстый клиент (обычное приложение)) {Обработка.bzfВыгрузкаМеждународнойОтчетности.Форма.Форма.Форма(3350,35)}: Неопознанный оператор sheet.selection.EntireRow.delete<<?>>; (Проверка: Толстый клиент (обычное приложение)) Если вбивать значения напрямую, без переменных, то работает, но мне надо через переменные a=ТЗ[КоличествоСтрок-2-c].Индекс1+2; b=ТЗ[КоличествоСтрок-c-1].Индекс1-1; ab=Строка("A"+a+":"+"A"+b); Sheet.Range(ab).Select(); Sheet.Selection.EntireRow.Delete(); Так пытаюсь - не работает Произошла исключительная ситуация (0x800a03ec) |
|||
8
marshalbratsk
07.12.16
✎
11:16
|
http://hkar.ru/MvDO
Строку определяет |
|||
9
marshalbratsk
07.12.16
✎
11:21
|
ФЫШВОФДЫВРОФЫРВЛОЫФВОЫРФВЛЫв
ФОРМАТ, МАТЬ ЕГО, ЧИСЛА писал с пробелами http://hkar.ru/MvEC Сначала не обратил внимания, потом, когда (8) отправил - увидел |
|||
10
marshalbratsk
07.12.16
✎
11:23
|
Всем спасибо, всего хорошего
|
|||
11
Vladal
07.12.16
✎
11:28
|
Да. Точно. Формат числа без разделителей надо использовать.
В семерке это было естественным, а восьмерка преобразует число в строку с разделителем, если не указать иначе. |
|||
12
marshalbratsk
07.12.16
✎
11:30
|
А ещё через Selection не хочет удалять, ругается, писал напрямую
Sheet.Range(ab).Delete(); |
|||
13
marshalbratsk
07.12.16
✎
11:53
|
(12) И так он тоже не удалял
Короче, чтобы удалить диапазон строк нужно писать следующее Sheet.Range("Диапазон строк").EntireRow.Delete(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |