Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2010, 15:47   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Пусть, например, в последней строке (строке итогов) в столбце "A" всегда присутствует значение. Тогда добавить строку перед строкой итогов, можно так:
Код:
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Insert
Но, по всей видимости, Вам этого будет не достаточно. Возможно, что понадобится изменить какие-либо формулы.
Приведите конкретный пример и укажите, что еще, кроме добавления строки в нужное место, должен сделать макрос. Только в этом случае Вы можете расчитывать на полный ответ. Гадать, что Вам нужно, здесь никто не будет.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.11.2010, 18:11   #12
ILF_ollie
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Пусть, например, в последней строке (строке итогов) в столбце "A" всегда присутствует значение. Тогда добавить строку перед строкой итогов, можно так:
Код:
Rows(Cells(Rows.Count, 1).End(xlUp).Row).Insert
Но, по всей видимости, Вам этого будет не достаточно. Возможно, что понадобится изменить какие-либо формулы.
Приведите конкретный пример и укажите, что еще, кроме добавления строки в нужное место, должен сделать макрос. Только в этом случае Вы можете расчитывать на полный ответ. Гадать, что Вам нужно, здесь никто не будет.
Все оказалось намного проще:

Sub Добавление_строки()
'
' Добавление_строки Макрос
'

'
Range("Таблица1[#Totals]").Select
Selection.ListObject.ListRows.Add

End Sub


В любом случае, спасибо.
ILF_ollie вне форума Ответить с цитированием
Старый 27.12.2011, 22:47   #13
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

А почему тогда не работает код по удалению данных из таблицы:

Range("Расходы_товары").Select
Selection.ListObject.ListRows.Delet e
СтаниславАВ вне форума Ответить с цитированием
Старый 27.12.2011, 22:54   #14
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

При удалении строк таблицы excel при помощи vba:

При записи макроса пишет код:
Range("Расходы_товары").Select
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete
Selection.ListObject.ListRows(1).De lete

А код написанный мной для таблицы содержащей разное количество строк не работает.
СтаниславАВ вне форума Ответить с цитированием
Старый 27.12.2011, 23:03   #15
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Использовал макрос умных людей:

Option Explicit

Sub УдалениеСтрокПоУсловию()
Dim ra As Range, delra As Range, ТекстДляПоиска As String
Application.ScreenUpdating = False ' отключаем обновление экрана
'ТекстДляПоиска = InputBox("Введите криерий для удаления строк") ' удаляем строки с таким текстом
ТекстДляПоиска = "" ' удаляем пучтые строки
' перебираем все строки в используемом диапазоне листа
For Each ra In ActiveSheet.UsedRange.Rows
' если в строке найден искомый текст
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
' добавляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
' если подходящие строки найдены - удаляем их
If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub


Он мне стёр все таблицы, и даже те которые удалять не надо было.
СтаниславАВ вне форума Ответить с цитированием
Старый 28.12.2011, 06:28   #16
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Как заставить работать макрос с таблицей?
Спасибо.
Вложения
Тип файла: rar Удаление пустых строк.rar (10.2 Кб, 13 просмотров)
СтаниславАВ вне форума Ответить с цитированием
Старый 28.12.2011, 07:14   #17
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Попробовал прописать так:

Dim i As Integer
i = ActiveCell.Row - Range("Таблица2").Row + 1
Range("Таблица2").ListObject.ListRo ws(i).Delete

По прежнему не работает.
СтаниславАВ вне форума Ответить с цитированием
Старый 28.12.2011, 07:18   #18
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Цитата:
Сообщение от СтаниславАВ Посмотреть сообщение
Попробовал прописать так:

Dim i As Integer
i = ActiveCell.Row - Range("Таблица2").Row + 1
Range("Таблица2").ListObject.ListRo ws(i).Delete

По прежнему не работает.
Dim i As Integer
i = Range("Расходы_товары").Row
Range("Расходы_товары").ListObject. ListRows(i).Delete

Так тоже не работат
СтаниславАВ вне форума Ответить с цитированием
Старый 28.12.2011, 07:22   #19
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Цитата:
Сообщение от СтаниславАВ Посмотреть сообщение
Dim i As Integer
i = Range("Расходы_товары").Row
Range("Расходы_товары").ListObject. ListRows(i).Delete

Так тоже не работат
Нашёл файл. Попробую с ним поэкспериментировать.
Вложения
Тип файла: rar post_79908.rar (26.0 Кб, 22 просмотров)
СтаниславАВ вне форума Ответить с цитированием
Старый 28.12.2011, 08:45   #20
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Для примера из предпоследнего вложения попробуйте так ("Таблица2" на активном листе):
Код:
Sub AddRow()
    ListObjects("Таблица2").ListRows.Add
End Sub

Sub DelRow()
    With ListObjects("Таблица2")
        .ListRows(.ListRows.Count).Delete
    End With
End Sub
nilem вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление данных из Delphi в таблице Excel Neket21 БД в Delphi 1 23.07.2009 08:06
добавление в таблице CJartem Помощь студентам 0 25.04.2009 12:20
добавление строки в таблице nikleb JavaScript, Ajax 14 09.03.2009 13:27
Удаление/добавление полей runtime /Denis/ БД в Delphi 1 06.08.2008 22:35
Добавление и удаление записей в Listview Scorpeon Компоненты Delphi 0 08.06.2007 23:09