Или формул много? upd Увидел сообщение от ТС. Меньше секунды, норм.
Формулы есть.. на двух листах, с которыми макрос и работает. Формула сращивания текста из 15 ячеек строки в 22 ячейку.. после я ее растягиваю вниз до 26000 строки. После копирую этот столбец и вставляю данные в 23 столбец (по другому не знаю, как уникальность строки показать для макроса.
Или формул много? upd Увидел сообщение от ТС. Меньше секунды, норм.
Формулы есть.. на двух листах, с которыми макрос и работает. Формула сращивания текста из 15 ячеек строки в 22 ячейку.. после я ее растягиваю вниз до 26000 строки. После копирую этот столбец и вставляю данные в 23 столбец (по другому не знаю, как уникальность строки показать для макроса.ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
это вариант работает 283 секунды в моем варианте.. А вот вариант nilem, после того, как я перенес данные из одной книги в другую (видимо были какие то форматы) и она стала "весить" в полтора раз меньше стал работать меньше секунды.. ничего не понимаю... что могло раньше так тормозить? Надо делать перекур мозгу.. не рассчитан он на такие высокие технологии
Похоже, что насчет времени работы макроса alex77755, я дал не верную информацию. Я применил макрос без правки в 21 посту.. Вчера поправил и запустил макрос. Работал он 41:18 (чего то долго) и самое главное, что результаты совершенно разные получились на листе НКУ (я про количество совпадения) - Вариант alex77755, чуть больше значений находит
это вариант работает 283 секунды в моем варианте.. А вот вариант nilem, после того, как я перенес данные из одной книги в другую (видимо были какие то форматы) и она стала "весить" в полтора раз меньше стал работать меньше секунды.. ничего не понимаю... что могло раньше так тормозить? Надо делать перекур мозгу.. не рассчитан он на такие высокие технологии
Похоже, что насчет времени работы макроса alex77755, я дал не верную информацию. Я применил макрос без правки в 21 посту.. Вчера поправил и запустил макрос. Работал он 41:18 (чего то долго) и самое главное, что результаты совершенно разные получились на листе НКУ (я про количество совпадения) - Вариант alex77755, чуть больше значений находит ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
сколько строк в таблицах? 26000 обрабатывает не больше 3с
Цитата
и мне нужно в 30 столбцах обоих листов поставить число 1
если бы Названия городов были уникальны, то не проблема. А вот если, как у вас, дубли имеются в обоих таблицах, то объясните о какой нумерации вы говорите?! Поэтому я и вывел в обоих таблицах номера строк, в которых значение встречается в противоположной странице
Цитата
можно сделать закраску найденных повторов в ячейке первой на обоих листах?
Можно сделать всё! Но я считаю ексел табличным редактором, а не раскраской из Мурзилки. И при больших объёмах надо делать выбор: время работы или раскраска.
Цитата
Работал он 41:18
сколько строк в таблицах? 26000 обрабатывает не больше 3с
Цитата
и мне нужно в 30 столбцах обоих листов поставить число 1
если бы Названия городов были уникальны, то не проблема. А вот если, как у вас, дубли имеются в обоих таблицах, то объясните о какой нумерации вы говорите?! Поэтому я и вывел в обоих таблицах номера строк, в которых значение встречается в противоположной странице
Цитата
можно сделать закраску найденных повторов в ячейке первой на обоих листах?
Можно сделать всё! Но я считаю ексел табличным редактором, а не раскраской из Мурзилки. И при больших объёмах надо делать выбор: время работы или раскраска.alex77755
Могу помочь в VB6, VBA Alex77755@mail.ru
Сообщение отредактировал alex77755 - Вторник, 30.01.2018, 11:07
сколько строк в таблицах? 26000 обрабатывает не больше 3с
Уважаемый alex77755, вы наверно правы, но чего то в голове не так или на компах.. я запускал один и тот же файл и всегда время разное.. от секунды до трех минут в среднем.. 41 минуту было только один раз вчера дома и почему не представляю. По экспериментирую и отпишусь.
сколько строк в таблицах? 26000 обрабатывает не больше 3с
Уважаемый alex77755, вы наверно правы, но чего то в голове не так или на компах.. я запускал один и тот же файл и всегда время разное.. от секунды до трех минут в среднем.. 41 минуту было только один раз вчера дома и почему не представляю. По экспериментирую и отпишусь.ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Уважаемый alex77755, посмел товарища попросить доработать Ваш макрос, чтобы нумерация была сквозная.. вроде работает.
[vba]
Код
Sub Сравнение_быстрый_массив_доработан() Dim iTimer iTimer = Time Dim OldCalc As Integer With Application .ScreenUpdating = False OldCalc = .Calculation .Calculation = xlCalculationManual End With Dim Dan1 As String 'назначаем переменную Dan String (текстового типа) Dim Dan2 As String 'назначаем переменную Dan String (текстового типа) Dim i As Long Dim q As Long Dim r As Long, t Dim counter As Long
Dim arr1, arr2, u, sl: Set sl = CreateObject("Scripting.Dictionary") Dim slo: Set slo = CreateObject("Scripting.Dictionary") arr1 = Worksheets("НКУ").Cells(1, 23).Resize(Worksheets("НКУ").UsedRange.Rows.Count, 8).Value ' считали в массив
For r = 3 To UBound(arr1) 'заливаем в словарь t = arr1(r, 1) sl(t) = sl(t) & "|" & r ' запоминаем все строки с уникальными значениями arr1(r, 8) = "" 'очищаем поле результатов Next r
With Sheets("остальные сборочки")
arr2 = .Cells(1, 23).Resize(.UsedRange.Rows.Count, 8).Value ' считали в массив
counter = 1 For r = 3 To UBound(arr2) 'по второму массиву t = arr2(r, 1) arr2(r, 8) = "" 'очищаем поле результатов
If sl.exists(t) Then 'проверяем наличие значения в словаре 'arr2(r, 8) = Mid(Replace(sl(t), "|", ", "), 3) arr2(r, 8) = CStr(counter)
u = Split(sl(t), "|") For i = 1 To UBound(u) q = u(i) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr2(q, 8) & ", " & r) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr1(q, 8) & ", " & r) arr1(q, 8) = CStr(counter) Next i
counter = counter + 1 Else slo(t) = slo(t) & "|" & r End If Next r .Cells(1, 23).Resize(UBound(arr2), 8) = arr2 End With Worksheets("НКУ").Cells(1, 23).Resize(UBound(arr1), 8) = arr1
With Application .ScreenUpdating = True .Calculation = OldCalc End With MsgBox "Макрос работал " & Format(Time - iTimer, "hh:nn:ss"), vbExclamation, "" 'выводит сообщение о времени работы макроса End Sub
[/vba]
Макрос Уважаемого nilem, тоже отлично работает
[vba]
Код
Sub ertert() Dim x, yNk(), ySb(), i&, k&, tm! tm = Timer
With Sheets("НКУ") x = .Range("W3", .Cells(Rows.Count, "W").End(xlUp)).Value End With ReDim yNk(1 To UBound(x), 1 To 1)
With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x) .Item(x(i, 1)) = i Next i
With Sheets("остальные сборочки") x = .Range("W3", .Cells(Rows.Count, "W").End(xlUp)).Value End With ReDim ySb(1 To UBound(x), 1 To 1)
For i = 1 To UBound(x) If .exists(x(i, 1)) Then k = k + 1: ySb(i, 1) = k yNk(.Item(x(i, 1)), 1) = k End If Next i End With
MsgBox "Макрос работал сек: " & Timer - tm End Sub
[/vba]
Уважаемый alex77755, посмел товарища попросить доработать Ваш макрос, чтобы нумерация была сквозная.. вроде работает.
[vba]
Код
Sub Сравнение_быстрый_массив_доработан() Dim iTimer iTimer = Time Dim OldCalc As Integer With Application .ScreenUpdating = False OldCalc = .Calculation .Calculation = xlCalculationManual End With Dim Dan1 As String 'назначаем переменную Dan String (текстового типа) Dim Dan2 As String 'назначаем переменную Dan String (текстового типа) Dim i As Long Dim q As Long Dim r As Long, t Dim counter As Long
Dim arr1, arr2, u, sl: Set sl = CreateObject("Scripting.Dictionary") Dim slo: Set slo = CreateObject("Scripting.Dictionary") arr1 = Worksheets("НКУ").Cells(1, 23).Resize(Worksheets("НКУ").UsedRange.Rows.Count, 8).Value ' считали в массив
For r = 3 To UBound(arr1) 'заливаем в словарь t = arr1(r, 1) sl(t) = sl(t) & "|" & r ' запоминаем все строки с уникальными значениями arr1(r, 8) = "" 'очищаем поле результатов Next r
With Sheets("остальные сборочки")
arr2 = .Cells(1, 23).Resize(.UsedRange.Rows.Count, 8).Value ' считали в массив
counter = 1 For r = 3 To UBound(arr2) 'по второму массиву t = arr2(r, 1) arr2(r, 8) = "" 'очищаем поле результатов
If sl.exists(t) Then 'проверяем наличие значения в словаре 'arr2(r, 8) = Mid(Replace(sl(t), "|", ", "), 3) arr2(r, 8) = CStr(counter)
u = Split(sl(t), "|") For i = 1 To UBound(u) q = u(i) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr2(q, 8) & ", " & r) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr1(q, 8) & ", " & r) arr1(q, 8) = CStr(counter) Next i
counter = counter + 1 Else slo(t) = slo(t) & "|" & r End If Next r .Cells(1, 23).Resize(UBound(arr2), 8) = arr2 End With Worksheets("НКУ").Cells(1, 23).Resize(UBound(arr1), 8) = arr1
With Application .ScreenUpdating = True .Calculation = OldCalc End With MsgBox "Макрос работал " & Format(Time - iTimer, "hh:nn:ss"), vbExclamation, "" 'выводит сообщение о времени работы макроса End Sub
[/vba]
Макрос Уважаемого nilem, тоже отлично работает
[vba]
Код
Sub ertert() Dim x, yNk(), ySb(), i&, k&, tm! tm = Timer
With Sheets("НКУ") x = .Range("W3", .Cells(Rows.Count, "W").End(xlUp)).Value End With ReDim yNk(1 To UBound(x), 1 To 1)
With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x) .Item(x(i, 1)) = i Next i
With Sheets("остальные сборочки") x = .Range("W3", .Cells(Rows.Count, "W").End(xlUp)).Value End With ReDim ySb(1 To UBound(x), 1 To 1)
For i = 1 To UBound(x) If .exists(x(i, 1)) Then k = k + 1: ySb(i, 1) = k yNk(.Item(x(i, 1)), 1) = k End If Next i End With
Данные растянул на 55000 строк, колонку "Кол-во полюсов" заполнил случайными =СЛУЧМЕЖДУ(1;1000), чтобы было больше разных ключей. Время выполнения 3,3...3,4 сек.
[vba]
Код
Sub ertert() Dim x, yNk(), ySb(), i&, k&, tm!, s$ 'Dim ky tm = Timer
With Sheets("НКУ") If .FilterMode Then .ShowAllData x = .Range("A3:U" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With ReDim yNk(1 To UBound(x), 1 To 1)
With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x) s = Join(Array(x(i, 1), x(i, 7), x(i, 8), x(i, 10), x(i, 11), x(i, 12), _ x(i, 13), x(i, 14), x(i, 15), x(i, 16), x(i, 17), x(i, 18), _ x(i, 19), x(i, 20), x(i, 21)), "|") .Item(s) = i Next i
' For Each ky In .keys ' MsgBox Len(ky) ' Next
With Sheets("остальные сборочки") If .FilterMode Then .ShowAllData x = .Range("A3:U" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With ReDim ySb(1 To UBound(x), 1 To 1)
For i = 1 To UBound(x) s = Join(Array(x(i, 1), x(i, 7), x(i, 8), x(i, 10), x(i, 11), x(i, 12), _ x(i, 13), x(i, 14), x(i, 15), x(i, 16), x(i, 17), x(i, 18), _ x(i, 19), x(i, 20), x(i, 21)), "|") If .Exists(s) Then k = k + 1: ySb(i, 1) = k yNk(.Item(s), 1) = k End If Next i End With
MsgBox "Макрос работал сек: " & Timer - tm End Sub
[/vba]
файл весит 10,5 Мб, выложить не могу
Данные растянул на 55000 строк, колонку "Кол-во полюсов" заполнил случайными =СЛУЧМЕЖДУ(1;1000), чтобы было больше разных ключей. Время выполнения 3,3...3,4 сек.
[vba]
Код
Sub ertert() Dim x, yNk(), ySb(), i&, k&, tm!, s$ 'Dim ky tm = Timer
With Sheets("НКУ") If .FilterMode Then .ShowAllData x = .Range("A3:U" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With ReDim yNk(1 To UBound(x), 1 To 1)
With CreateObject("Scripting.Dictionary") .CompareMode = 1 For i = 1 To UBound(x) s = Join(Array(x(i, 1), x(i, 7), x(i, 8), x(i, 10), x(i, 11), x(i, 12), _ x(i, 13), x(i, 14), x(i, 15), x(i, 16), x(i, 17), x(i, 18), _ x(i, 19), x(i, 20), x(i, 21)), "|") .Item(s) = i Next i
' For Each ky In .keys ' MsgBox Len(ky) ' Next
With Sheets("остальные сборочки") If .FilterMode Then .ShowAllData x = .Range("A3:U" & .Cells(Rows.Count, 1).End(xlUp).Row).Value End With ReDim ySb(1 To UBound(x), 1 To 1)
For i = 1 To UBound(x) s = Join(Array(x(i, 1), x(i, 7), x(i, 8), x(i, 10), x(i, 11), x(i, 12), _ x(i, 13), x(i, 14), x(i, 15), x(i, 16), x(i, 17), x(i, 18), _ x(i, 19), x(i, 20), x(i, 21)), "|") If .Exists(s) Then k = k + 1: ySb(i, 1) = k yNk(.Item(s), 1) = k End If Next i End With
nilem, ! Я в шоке.. приятном.. на рабочем компе 1 секунда с мелочью на выполнение макроса. На домашнем чуть быстрее. Строк на двух листах по 25000, совпадений половину находит. Много для меня в коде не понятно совершенно, но что и где поменять, чтобы в нужный столбец данные выгружались или задать другие ячейки в качестве уникальной "суммы" (сращивания) ячеек смогу.
nilem, ! Я в шоке.. приятном.. на рабочем компе 1 секунда с мелочью на выполнение макроса. На домашнем чуть быстрее. Строк на двух листах по 25000, совпадений половину находит. Много для меня в коде не понятно совершенно, но что и где поменять, чтобы в нужный столбец данные выгружались или задать другие ячейки в качестве уникальной "суммы" (сращивания) ячеек смогу.ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Уважаемый alex77755, после доработки Вашего макроса для последовательной нумерации (товарищ помог) он работает 17 секунд, но вчера он работа всего 1,5 секунды.. что я сделал с файлом не пойму.. пустых строк точно нет.. проверял.
[vba]
Код
Sub Сравнение_быстрый_массив_доработан() Dim iTimer iTimer = Time Dim OldCalc As Integer With Application .ScreenUpdating = False OldCalc = .Calculation .Calculation = xlCalculationManual End With Dim Dan1 As String 'назначаем переменную Dan String (текстового типа) Dim Dan2 As String 'назначаем переменную Dan String (текстового типа) Dim i As Long Dim q As Long Dim r As Long, t Dim counter As Long
Dim arr1, arr2, u, sl: Set sl = CreateObject("Scripting.Dictionary") Dim slo: Set slo = CreateObject("Scripting.Dictionary") arr1 = Worksheets("НКУ").Cells(1, 23).Resize(Worksheets("НКУ").UsedRange.Rows.Count, 8).Value ' считали в массив
For r = 3 To UBound(arr1) 'заливаем в словарь t = arr1(r, 1) sl(t) = sl(t) & "|" & r ' запоминаем все строки с уникальными значениями arr1(r, 8) = "" 'очищаем поле результатов Next r
With Sheets("остальные сборочки")
arr2 = .Cells(1, 23).Resize(.UsedRange.Rows.Count, 8).Value ' считали в массив
counter = 1 For r = 3 To UBound(arr2) 'по второму массиву t = arr2(r, 1) arr2(r, 8) = "" 'очищаем поле результатов
If sl.exists(t) Then 'проверяем наличие значения в словаре 'arr2(r, 8) = Mid(Replace(sl(t), "|", ", "), 3) arr2(r, 8) = CStr(counter)
u = Split(sl(t), "|") For i = 1 To UBound(u) q = u(i) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr2(q, 8) & ", " & r) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr1(q, 8) & ", " & r) arr1(q, 8) = CStr(counter) Next i
counter = counter + 1 Else slo(t) = slo(t) & "|" & r End If Next r .Cells(1, 23).Resize(UBound(arr2), 8) = arr2 End With Worksheets("НКУ").Cells(1, 23).Resize(UBound(arr1), 8) = arr1
With Application .ScreenUpdating = True .Calculation = OldCalc End With MsgBox "Макрос работал " & Format(Time - iTimer, "hh:nn:ss"), vbExclamation, "" 'выводит сообщение о времени работы макроса End Sub
[/vba]
И еще заметил, что макрос отрабатывает до 30000 сроки на обоих листах, хотя данных на 25000 на обоих листах. В макрос товарищем доработанном не нашел проблему (не удивительно в принципе для меня)
Уважаемый alex77755, после доработки Вашего макроса для последовательной нумерации (товарищ помог) он работает 17 секунд, но вчера он работа всего 1,5 секунды.. что я сделал с файлом не пойму.. пустых строк точно нет.. проверял.
[vba]
Код
Sub Сравнение_быстрый_массив_доработан() Dim iTimer iTimer = Time Dim OldCalc As Integer With Application .ScreenUpdating = False OldCalc = .Calculation .Calculation = xlCalculationManual End With Dim Dan1 As String 'назначаем переменную Dan String (текстового типа) Dim Dan2 As String 'назначаем переменную Dan String (текстового типа) Dim i As Long Dim q As Long Dim r As Long, t Dim counter As Long
Dim arr1, arr2, u, sl: Set sl = CreateObject("Scripting.Dictionary") Dim slo: Set slo = CreateObject("Scripting.Dictionary") arr1 = Worksheets("НКУ").Cells(1, 23).Resize(Worksheets("НКУ").UsedRange.Rows.Count, 8).Value ' считали в массив
For r = 3 To UBound(arr1) 'заливаем в словарь t = arr1(r, 1) sl(t) = sl(t) & "|" & r ' запоминаем все строки с уникальными значениями arr1(r, 8) = "" 'очищаем поле результатов Next r
With Sheets("остальные сборочки")
arr2 = .Cells(1, 23).Resize(.UsedRange.Rows.Count, 8).Value ' считали в массив
counter = 1 For r = 3 To UBound(arr2) 'по второму массиву t = arr2(r, 1) arr2(r, 8) = "" 'очищаем поле результатов
If sl.exists(t) Then 'проверяем наличие значения в словаре 'arr2(r, 8) = Mid(Replace(sl(t), "|", ", "), 3) arr2(r, 8) = CStr(counter)
u = Split(sl(t), "|") For i = 1 To UBound(u) q = u(i) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr2(q, 8) & ", " & r) 'arr1(q, 8) = IIf(Len(arr1(q, 8)) = 0, r, arr1(q, 8) & ", " & r) arr1(q, 8) = CStr(counter) Next i
counter = counter + 1 Else slo(t) = slo(t) & "|" & r End If Next r .Cells(1, 23).Resize(UBound(arr2), 8) = arr2 End With Worksheets("НКУ").Cells(1, 23).Resize(UBound(arr1), 8) = arr1
With Application .ScreenUpdating = True .Calculation = OldCalc End With MsgBox "Макрос работал " & Format(Time - iTimer, "hh:nn:ss"), vbExclamation, "" 'выводит сообщение о времени работы макроса End Sub
[/vba]
И еще заметил, что макрос отрабатывает до 30000 сроки на обоих листах, хотя данных на 25000 на обоих листах. В макрос товарищем доработанном не нашел проблему (не удивительно в принципе для меня)ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
alex77755, чего то не то в моем "колхозе". Только что два раза с подряд, Ваш доработанный для нумерации последовательной макрос работал ровно по секунде. nilem, Ваш макрос, после того как попользовался макросом alex77755, стал работать 185 секунд!!! проверил 2 раза с подряд. Может что то где то нужно чистить? Память? Или мне мозг? После файл закрыл-открыл и оба макроса попробовал более пяти раз в разной очередности - всегда по секунде работает
alex77755, чего то не то в моем "колхозе". Только что два раза с подряд, Ваш доработанный для нумерации последовательной макрос работал ровно по секунде. nilem, Ваш макрос, после того как попользовался макросом alex77755, стал работать 185 секунд!!! проверил 2 раза с подряд. Может что то где то нужно чистить? Память? Или мне мозг? После файл закрыл-открыл и оба макроса попробовал более пяти раз в разной очередности - всегда по секунде работает ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Вне зависимости от нас работает куча программ и процессов. И что там они делают мало кому известно. Но ресурсы-то жрут! Так же лезут в интернет. Проверяют обновления, обновляются. и т.д. и т.п.!
Вне зависимости от нас работает куча программ и процессов. И что там они делают мало кому известно. Но ресурсы-то жрут! Так же лезут в интернет. Проверяют обновления, обновляются. и т.д. и т.п.!alex77755
Вне зависимости от нас работает куча программ и процессов
Не вериться даже... ну не в 180 раз же хуже должно становиться.. да и комп у меня достаточно приличный.. Может по случаю и найду причину. Я забыл написать еще, что в те разы, когда комп долго считал расчеты выходили за диапазан строк на листах. Т.е. строк по 25000, а макрос отрабатывал до 30000. В макросах ничего не менял. На листах стараюсь всегда пустые строки удалять...
Вне зависимости от нас работает куча программ и процессов
Не вериться даже... ну не в 180 раз же хуже должно становиться.. да и комп у меня достаточно приличный.. Может по случаю и найду причину. Я забыл написать еще, что в те разы, когда комп долго считал расчеты выходили за диапазан строк на листах. Т.е. строк по 25000, а макрос отрабатывал до 30000. В макросах ничего не менял. На листах стараюсь всегда пустые строки удалять...ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
как выяснилось да. В моем рабочем файле в отдельном модуле есть макрос на очистку столбцов, в которые ваши макросы записывают номера.. в нем у меня есть строки [vba]
[/vba] Если при открытии файла не пользоваться очисткой этим макросом, то все нормально. Если этот макрос запускался, то после него Ваш макрос работает долго и результаты выводит даже ниже, чем строки с данными есть
как выяснилось да. В моем рабочем файле в отдельном модуле есть макрос на очистку столбцов, в которые ваши макросы записывают номера.. в нем у меня есть строки [vba]
[/vba] Если при открытии файла не пользоваться очисткой этим макросом, то все нормально. Если этот макрос запускался, то после него Ваш макрос работает долго и результаты выводит даже ниже, чем строки с данными естьovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Добавьте в макрос очистки сохранение книги - будет работать быстрей. и не до 30000 строк
не совсем понял Вас.. я переделал очистку до последних строк с данными на каждом листе (товарищ помог - у самого не хватило тяму). Сейчас работает нормально.. Но очистка на двух листах по столбу почти в 200 раз дольше макросов, которые участники этой темы мне сделали . Но это уже мелочи... будет критично -сделаю новую тему.
Добавьте в макрос очистки сохранение книги - будет работать быстрей. и не до 30000 строк
не совсем понял Вас.. я переделал очистку до последних строк с данными на каждом листе (товарищ помог - у самого не хватило тяму). Сейчас работает нормально.. Но очистка на двух листах по столбу почти в 200 раз дольше макросов, которые участники этой темы мне сделали . Но это уже мелочи... будет критично -сделаю новую тему.ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.