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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2013, 19:16   #1
Dima_com
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 40
По умолчанию Как сортировать данные на листе vbs?

Столкнулся казалось с обыкновенной задачей надо по сортировать данные(диапазон) на листе но вот проблема необходимый массив у меня начинается не с 1 строчки а с 5 и на листе есть еще другие данные. То есть сортировать надо выделенный массив.
Нашел такой скрипт
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)

objExcel.Cells(1, 1).Value = "4"
objExcel.Cells(2, 1).Value = "1"
objExcel.Cells(3, 1).Value = "2"
objExcel.Cells(4, 1).Value = "3"
objExcel.Cells(1, 2).Value = "A"
objExcel.Cells(2, 2).Value = "B"
objExcel.Cells(3, 2).Value = "C"
objExcel.Cells(4, 2).Value = "D"

Set objRange = objWorksheet.UsedRange
Set objRange2 = objExcel.Range("A1")
objRange.Sort(objRange2)

Но как сортировать не UsedRange а выделенную область?
Заранее спасибо за помощь и ценные советь!

Последний раз редактировалось Dima_com; 29.10.2013 в 19:18.
Dima_com вне форума Ответить с цитированием
Старый 29.10.2013, 21:05   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так и пишите вместо UsedRange эту свою выделенную область - по имени или по адресам.
Только что-то я не пойму, как Вы этот скрипт применять собираетесь, и зачем именно vbs?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.10.2013, 08:34   #3
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

запись макроса достойная штука, чтобы раскурить что-то.
Код:
Sub Макрос1()
'
' Макрос1 Макрос
'

'
    Range("A5:F18").Select
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("A5"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист1").Sort
        .SetRange Range("A5:F18")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
это сортировка от минимального к максимальному. в области "A5:F18"
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 31.10.2013 в 05:56.
SaLoKiN вне форума Ответить с цитированием
Старый 30.10.2013, 11:21   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вот сегодня уже делал - тоже диапазон сортируется, но в 2003:
Код:
Sub SorMyRange()
    With ActiveSheet.UsedRange
        .Offset(4).Sort Key1:=.Cells(5, 4), Order1:=xlAscending, Header:=xlGuess, _
                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                        DataOption1:=xlSortNormal
    End With
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.10.2013, 13:20   #5
Dima_com
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 40
По умолчанию

Спасибо всем большое уже решил :
PHP код:
objExcel.Range(objExcel.Cells(6,1),objExcel.Cells(5+10,5)).Select
        objExcel
.Selection.Sort objExcel.Cells(6,5),2,,,,,,,,False 
,2,,,,, реверс

,1,,,,, сорт

PS. макрос записал в самом начале он к сожалению не оч похож на vbs решение.
Dima_com вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли построчно записывать данные в excel vbs? Dima_com Microsoft Office Excel 8 28.10.2013 19:17
работа на одном листе с данными из LISTBOX, данные на другом листе konstantin1990 Microsoft Office Excel 3 22.07.2013 15:15
Повторяющиеся данные, длинные строки, VBS Boris26rus Помощь студентам 0 30.05.2013 22:03
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе Ирина Водолагина Microsoft Office Excel 4 04.03.2009 23:38