Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 24.06.2020, 22:45   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,107
По умолчанию

Замечание по коду - перекиньте всё что не относится к листу в стандартный модуль.
Потому что вот например сразу косяк:
Код:
Sub SortirovkaPoDatam()
    Dim PosStr1
    PosStr1 = Sheets("Лист2").UsedRange.Rows.Count
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Add Key:=Range("F1:F" & PosStr1) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Range("A1:J" & PosStr1)
        .Header = xlGuess
Range("F1:F" & PosStr1) и Range("A1:J" & PosStr1) будут от какого листа браться, как думаете?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 26.06.2020, 05:51   #12
Mkoty
Пользователь
 
Регистрация: 26.05.2020
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Замечание по коду - перекиньте всё что не относится к листу в стандартный модуль.
Потому что вот например сразу косяк:
Код:
Sub SortirovkaPoDatam()
    Dim PosStr1
    PosStr1 = Sheets("Лист2").UsedRange.Rows.Count
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Add Key:=Range("F1:F" & PosStr1) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Range("A1:J" & PosStr1)
        .Header = xlGuess
Range("F1:F" & PosStr1) и Range("A1:J" & PosStr1) будут от какого листа браться, как думаете?
думаю от второго
Код:
ActiveWorkbook.Worksheets("Лист2").Sort
по крайней мере работает.
я не совсем понимаю суть предложения (тот еще программист)

Последний раз редактировалось Mkoty; 26.06.2020 в 05:55.
Mkoty вне форума Ответить с цитированием
Старый 26.06.2020, 07:27   #13
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 2,870
По умолчанию

В зависимости от того, какой лист активный в момент запуска макрос, диапазон того листа и будет использоваться.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.06.2020, 12:34   #14
Mkoty
Пользователь
 
Регистрация: 26.05.2020
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
В зависимости от того, какой лист активный в момент запуска макрос, диапазон того листа и будет использоваться.
В момент запуска макроса активен Лист1, а сортировку сделал на Лист2, как и хотел.
Перенесу в стандартный модуль все.
Mkoty вне форума Ответить с цитированием
Старый 26.06.2020, 13:13   #15
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 2,870
По умолчанию

рекомендуют для сортировка лист2 писать
Код:
With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Worksheets("Лист2").Range("A1:J" & PosStr1)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.06.2020, 13:51   #16
Mkoty
Пользователь
 
Регистрация: 26.05.2020
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
рекомендуют для сортировка лист2 писать
Код:
With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Worksheets("Лист2").Range("A1:J" & PosStr1)
Принято.
увидел где у меня ошибка, странно но работало
Mkoty вне форума Ответить с цитированием
Старый 26.06.2020, 20:41   #17
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,107
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
В зависимости от того, какой лист активный в момент запуска макрос, диапазон того листа и будет использоваться.
- это если код в стандартном модуле. А код не там, о чём я и написал.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.06.2020, 22:13   #18
alex777555
Пользователь
 
Регистрация: 30.07.2018
Сообщений: 13
По умолчанию

Цитата:
Код:
        Kod = Sheets("Лист2").Range("A" & i)
        Kol = Sheets("Лист2").Range("B" & i)
Конечно будет долго
юзай массивы
alex777555 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка таблицы макросом Dorina Microsoft Office Excel 9 22.04.2011 18:24
Обработка символьных массивов. Вывод кодовой таблицы. Manya-srt Помощь студентам 0 08.11.2010 17:05
обработка таблицы в Microsoft Office Excel 2007 leoleonid Microsoft Office Excel 2 08.09.2010 18:02
Обработка таблицы Anatoly_K Microsoft Office Excel 12 03.06.2010 18:12


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS