Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: код сортировки строк в excel Добавлено: 30.01.09 13:07  

Автор вопроса:  ALexander
Уважаемые спцы по VBA:
пытаюсь написать код сортировки строк в excel по колонке "E" (причем нужно выбрать для сортировки несколько строк,идущих подряд от первой до i-ой.

делаю так:
'подсчитываю в переменной i сколько у меня всего строк для выбора (с учетом, что они идут подряд и во всех нужных заполнена колонка "C")

Do While Workbooks(1).Worksheets(n).Cells(i, "C").Value <> ""
i = i + 1
Loop
 
'хочу выбрать строки от первой до i-ой (переменную i программа не хочет принимать)
 Workbooks(1).Worksheets(n).Rows("1:i").Select
 
'дальше сортировка выбранных строк
    Selection.Sort Key1:=Range("E17"), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
 
что можно сделать?
спасибо!

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #1 Добавлено: 30.01.09 13:18
  1. call Workbooks(1).Worksheets(n).Rows("1:" & i).Select

Попробуй.

Ответить

Номер ответа: 2
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #2 Добавлено: 30.01.09 13:42
Рекомендую отказаться от использования в коде символьной адресации ячеек. Сами удивитесь, насколько все станет проще!
  1. Sub mSort()
  2. Dim R As Long, Rn_All As Range, Rn_Sort As Range
  3. 'Set Rn_All = Workbooks(1).Worksheets(n).Cells
  4. Set Rn_All = ActiveSheet.Cells
  5. For R = 1 To 65536
  6.   If Rn_All(R, 3) = "" Then Exit For
  7. Next R
  8. Set Rn_Sort = Range(Rn_All(1), Rn_All(R - 1, 256))
  9. Rn_Sort.Sort Key1:=Rn_Sort(1, 4), Order1:=xlAscending, Header:=xlNo _
  10.     , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
  11.     DataOption1:=xlSortNormal
  12. End Sub

Ответить

Номер ответа: 3
Автор ответа:
 ALexander



Вопросов: 4
Ответов: 3
 Профиль | | #3 Добавлено: 30.01.09 14:13
использовал:
call Workbooks(1).Worksheets(n).Rows("1:" & i).Select
сработало,
такой вариант гораздо проще для меня

спасибо!

Ответить

Номер ответа: 4
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #4 Добавлено: 03.02.09 13:37
Для разных ситуаций - удобней по разная адресация.

Ответить

Номер ответа: 5
Автор ответа:
 машинист



Вопросов: 6
Ответов: 26
 Профиль | | #5 Добавлено: 04.05.09 04:16
GDK пишет:
call Workbooks(1).Worksheets(n).Rows("1:" & i).Select


Вопрос: Что делать дальше с этим Select? Где увидеть, воспользоваться содержимым? А если я выделил отдельную ячейку, то как писвоить её значение моей переменной MyVar as variant?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам