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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2021, 16:41   #1
rodionov_uv
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 15
По умолчанию Скрипт VB на Delphi

Помогите пожалуйста переделать скрипт на Delphi, перерыл все, но ничего не нашел.
Это сортировка по цвету ячеек

Код:
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Range("B9:N65").Select
    ActiveWorkbook.Worksheets("сводный").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("сводный").Sort.SortFields.Add(Range("B9:B65"), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(0, 255 _
        , 0)
    ActiveWorkbook.Worksheets("сводный").Sort.SortFields.Add(Range("B9:B65"), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 0 _
        , 0)
    With ActiveWorkbook.Worksheets("сводный").Sort
        .SetRange Range("B9:N65")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Диапазон может быть разным. Сортировку по алфавиту делаю так:

Код:
exApp2.Range[exApp2.Cells[9, 2], exApp2.Cells[Rows, 25]].Sort
  (Key1 := exApp2.Range[exApp2.Cells[9, 2], exApp2.Cells[Rows, 2]],
  Order1:=1, Header:=2, OrderCustom:=1, MatchCase:=False, Orientation:=1, DataOption1:=0);
rodionov_uv вне форума Ответить с цитированием
Старый 29.12.2021, 10:06   #2
rodionov_uv
Пользователь
 
Регистрация: 21.12.2009
Сообщений: 15
По умолчанию

Решил проблему так:

Код:
\\получаю индекс цвета ячейки и заношу его в столбец "О"
  for i := 9 to Rows do
  begin
    exApp2.Cells[i, 15].Value := IntToStr(exApp2.Rows[i].Columns['B:N'].Interior.ColorIndex);  
  end;

\\применяю обычную сортировку по убыванию
  exApp2.Range[exApp2.Cells[9, 2], exApp2.Cells[Rows, 15]].Sort
  (Key1 := exApp2.Range[exApp2.Cells[9, 15], exApp2.Cells[Rows, 15]],
  Order1:=2, Header:=2, OrderCustom:=1, MatchCase:=False, Orientation:=1, DataOption1:=0);

\\удаляю столбец с индексами
  exApp2.Cells.Columns[15].Delete(Shift := -4159);
Но все же хотелось применить данный макрос, т.к. это у меня пока еще три цвета и индексы идут как надо, а если будет больше
rodionov_uv вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнит php скрипт в delphi alman12 Общие вопросы Delphi 5 29.04.2015 14:23
Программа Delphi и скрипт на PHP nubick Фриланс 0 12.09.2014 16:32
скрипт отправки файлов Delphi mrdess16 Общие вопросы Delphi 0 28.06.2011 20:03
[Post ajax] Отправить данные на скрипт в delphi webber9989 Работа с сетью в Delphi 6 29.03.2011 13:01
мой сайт взломали и в коды скриптов добавили вот этот скрипт. Что за скрипт? nsbox JavaScript, Ajax 9 21.01.2010 18:19