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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2010, 10:24   #21
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Про
ReDim Preserve sekkk(1 To UBound(sekkk), 1 To nLastCol)
Что-то я не вижу, где Вы его потом заполняете. Вижу, что читаете. Причём вроде только прежний размер, а новую часть не трогаете.
А заполнили ведь его уже выше:
sekkk = ActiveWorkbook.Worksheets("сличител ьная").Range("a1:j" & nLastrow)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.10.2010 в 10:29.
Hugo121 вне форума Ответить с цитированием
Старый 13.10.2010, 10:41   #22
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

да??....вот жежжжж...
ну это тогда у меня давнишняя ошибка, кто то как пример мне дал такую связку
sekkk = ActiveWorkbook.Worksheets("сличител ьная").Range("a1:k" & nLastrow)
ReDim Preserve sekkk(1 To UBound(sekkk), 1 To nLastCol)
вот я ее и юзаю...
sn00p вне форума Ответить с цитированием
Старый 13.10.2010, 10:52   #23
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Ну, в общем, где-то так:
Код:
Sub qq()
    Dim i As Long, j As Long, k As Integer, a(), b(): Application.ScreenUpdating = False
    a = ActiveWorkbook.Sheets("сличительная").Range("A1:J" & Cells(Rows.Count, 1).End(xlUp).Row).Value
    ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2)): j = 1
    For i = 1 To UBound(a, 1)
        If a(i, 6) <> 0 Then
            If a(i, 8) <> 0 Then
                For k = 1 To UBound(b, 2): b(j, k) = a(i, k): Next
                j = j + 1
    End If: End If: Next
    ActiveWorkbook.Sheets("Лист2").[A1].Resize(j, UBound(b, 2)).Value = b
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.10.2010, 10:57   #24
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Значит можно сэкономить ещё 0,14 сек
P.S. Пока писал, уже сэкономили
Всё так и есть - без ReDim Preserve, без лишней проверки, выгружается только верхушка.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.10.2010 в 11:00.
Hugo121 вне форума Ответить с цитированием
Старый 13.10.2010, 11:00   #25
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Значит можно сэкономить ещё 0,14 сек
По сравнению с чем?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.10.2010, 11:27   #26
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
По сравнению с чем?
Это я писал до Вашего кода (долго писал )
А 0,14 сек отрабатывал код nilemа по перерисовке массива на 17000 записей (где-то на 2-ой странице).
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.10.2010, 11:39   #27
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

погорячился)

Последний раз редактировалось sn00p; 13.10.2010 в 12:03.
sn00p вне форума Ответить с цитированием
Старый 13.10.2010, 12:20   #28
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

само условие неверное , мне нужно удалять лишь только в том случае, когда оба значения =0
sn00p вне форума Ответить с цитированием
Старый 13.10.2010, 12:24   #29
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Значения цифры? Проверяйте сумму (если нет вариантов "+ на - дают 0").
If (a(i, 6) + a(i, 8)) <> 0 Then
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.10.2010 в 12:28.
Hugo121 вне форума Ответить с цитированием
Старый 13.10.2010, 12:30   #30
sn00p
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 40
По умолчанию

хорошо, спасибо, а то я уже голову сломал какой цикл использовать
sn00p вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" макарошка Microsoft Office Excel 15 05.10.2010 09:09
удалить дубли в tstringlist, и удалить по списку AHTOLLlKA Компоненты Delphi 2 17.01.2010 10:20
как удалить одиннаковые элементы в массиве? -ushёl- Помощь студентам 22 15.05.2009 23:07
Как удалить строки и столбцы в массиве ЛесенОК Свободное общение 1 31.01.2009 18:35
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36