Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как выглядит скрипт, считающий красные строчки в EXCELL? / 12 сообщений из 12, страница 1 из 1
24.03.2009, 13:03
    #35887950
arrio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
Как выглядит скрипт, считающий красные строчки в EXCELL - файле и выдающий их количество и их самих в MSGBOX?
Sub redstring()
redstring = 0
For i = 0 To ' до конца файла данных
i = i + 1
Range("a").Select
If Selection.Font.ColorIndex = 3 Then
redstring = redstring + 1
endif
MsgBox (redstring)
' вывести сами эти строки..
End
End Sub
...
Рейтинг: 0 / 0
01.04.2009, 14:19
    #35905785
arrio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
Что, никто не поможет? :( программисты VBA, помогите!
...
Рейтинг: 0 / 0
01.04.2009, 14:23
    #35905802
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
arrioЧто, никто не поможет? :( программисты VBA, помогите!
вы бы задали свой вопрос в другом разделе, а тут не VBA, а VB
...
Рейтинг: 0 / 0
01.04.2009, 14:27
    #35905819
gjghjc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
В общих чертах он именно так и выглядит.
Только я бы еще добавил переменную
Код: plaintext
RedStringText = RedStringText & vbCrLf & Cell(i, 1 )
В которую бы и помещал собственно содержимое нужных ячеек

С уважением, Николай.
...
Рейтинг: 0 / 0
01.04.2009, 15:21
    #35905978
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
где-то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub Test()
Dim RWork As Range, RDel As Range, RRow As Long, I As Long, Mes As String
  Application.FindFormat.Interior.ColorIndex =  3 
  Set RWork = Range("A1"): Set RDel = Nothing: I =  0 : Mes = ""
  Do
    Set RWork = Range("A" & RWork.Row & ":A65536").Find(What:="", _
      SearchDirection:=xlNext, SearchFormat:=True)
    If RWork Is Nothing Then
      Exit Do
    Else
      If RDel Is Nothing Then
        Set RDel = RWork
      Else
        If RRow = RWork.Row Then Exit Do
        Set RDel = Union(RDel, RWork)
      End If
      RRow = RWork.Row
      Mes = Mes & RWork.Cells( 1 ,  1 ) & " "
      I = I +  1 
    End If
  Loop
  If Not RDel Is Nothing Then MsgBox "Строк=" & I & " Содержимое=" & Mes 'RDel.EntireRow.Address
End Sub 'Test
...
Рейтинг: 0 / 0
01.04.2009, 15:28
    #35906007
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
строку
Код: plaintext
1.
    Set RWork = Range("A" & RWork.Row & ":A65536").Find(What:="", _
      SearchDirection:=xlNext, SearchFormat:=True)
лучще заменить на такую, а то запоминаются остатки параметров от предыдущего поиска
Код: plaintext
1.
    Set RWork = Range("A" & RWork.Row & ":A65536").Find(What:="", LookIn:=xlFormulas, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, SearchFormat:=True)
...
Рейтинг: 0 / 0
01.04.2009, 15:39
    #35906069
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
т.к. текст брал из другого алгоритма, то было длинно, в данном случае можно еще короче:)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub Test()
Dim RWork As Range, RRow As Long, I As Long, Mes As String
  Application.FindFormat.Interior.ColorIndex =  3 
  Set RWork = Range("A1"): I =  0 : Mes = ""
  Do
    Set RWork = Range("A" & RWork.Row & ":A65536").Find(What:="", LookIn:=xlFormulas, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, SearchFormat:=True)
    If RWork Is Nothing Then Exit Do
    If RRow = RWork.Row Then Exit Do
    RRow = RWork.Row
    Mes = Mes & RWork.Cells( 1 ,  1 ) & " "
    I = I +  1 
  Loop
  If I <>  0  Then MsgBox "Строк=" & I & " Содержимое=" & Mes
End Sub
...
Рейтинг: 0 / 0
01.04.2009, 16:02
    #35906157
gjghjc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
А может лучше найти для начала последнюю заполненную строку , чтобы в цикле не просматривать все 65 тыс строк (тем более что в 2007 экселе их кажется поболее будет)
С уважением, Николай.
...
Рейтинг: 0 / 0
01.04.2009, 16:21
    #35906235
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
эта "рыба" - удочка, а не рыба:) это к тому, что я предагаю метод, а не окончательное решение.
да и вижу уже недостатки, например, первую строку не ищет
а по поводу 65 тыс строк, то да, в 2007 побольше.
а по скорости разницы нет, что укажешь, Ексель сам знает, где ему ковыряться.
...
Рейтинг: 0 / 0
01.04.2009, 16:25
    #35906245
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
gjghjc
к собственному удовольствию, по ссылке нашел и свою лепту по поиску последней строки:)
...
Рейтинг: 0 / 0
01.04.2009, 17:01
    #35906373
gjghjc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
Мдя, действительно :)
Осталось только выяснить ходил ли ТС по ссылке или содрал код втупую не задумываясь :)
С уважением, Николай.
...
Рейтинг: 0 / 0
02.04.2009, 16:03
    #35908814
arrio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выглядит скрипт, считающий красные строчки в EXCELL?
Спасибо!!!
Получается, в экселе нет встроенной функции конца данных на листе?
А чтоб мне не все строки с красным текстом искал, а только красные строки на зеленом фоне выдавал?
я просто не знаю синтаксиса..
(Application.FindFormat.Font.ColorIndex = 3 and Application.FindFormat.Interior.ColorIndex = 34) ??
и выдавал найденное не в одну строку Mes = Mes & RWork.Cells(1, 1) & " "
а в списке, то есть добавлять знак конца строки...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как выглядит скрипт, считающий красные строчки в EXCELL? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]