Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Удалить строки   Найти похожие ветки 

 
SerJaNT ©   (2007-08-19 04:37) [0]

В файле Excel на листе 1 находится такой текст:

@
текст
@
текст
@
текст
@
текст
текст
текст
текст
@
текст
@
текст
текст
@

Помогите написать макрос VBA который будет удалять строки вида
@
текст
@

т.е. чтобы из вышеприведенного текста получилось такое:

@
текст
текст
текст
текст
@
текст
текст
@

(удаляем строки где между @@ находится всего лишь одна строка).

Написал такой макрос, но вылетает с ошибкой..

Dim  CurrCellText, CurrCellText2 As String
Dim I, J As Long

J = Selection.Rows.Count

For I = 1 To J Step 1
  CurrCellText = Worksheets("Лист1").Cells(I, 1).Value
  CurrCellText2 = Worksheets("Лист1").Cells(I + 2, 1).Value

  If (InStr(CurrCellText, "@") <> 0) And (InStr(CurrCellText2, "@") <> 0) Then
     Rows(I).Select
     Selection.Delete
     Rows(I + 1).Select
     Selection.Delete
     I = I - 2
  End If
Next I


 
1233333   (2007-08-19 07:42) [1]

Я конечно плохо помню VB, но для начала бы проверил, что строк больше двух, а затем оформил бы цикл примерно так:
For I = J To 3 Step -1

InStr(CurrCellText, "@") <> 0 - это вообще не понятно. Почему бы не сделать просто
CurrCellText="@"?

вобщем я родил такой код:

Dim I, J As Long
   I = 1
   J = Worksheets("&#203;&#232;&#241;&#242;1").UsedRange.Rows.Count
   While I < J - 2
       If (Worksheets("&#203;&#232;&#241;&#242;1").Cells(I, 1).Value = "@") And (Worksheets("&#203;&#232;&#241;&#242;1").Cells(I + 2, 1).Value = "@") Then
           Worksheets("&#203;&#232;&#241;&#242;1").Rows(I).Delete
           Worksheets("&#203;&#232;&#241;&#242;1").Rows(I).Delete
           J = Worksheets("&#203;&#232;&#241;&#242;1").UsedRange.Rows.Count
       Else
           I = I + 1
       End If
   Wend


 
SerJaNT ©   (2007-08-19 11:04) [2]

> [1] 1233333   (19.08.07 07:42)

Спасибо, огромное!
Все работает как надо! :))



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
2-1187968392
master_asasin
2007-08-24 19:13
2007.09.16
Инфра звук


2-1187658254
koha
2007-08-21 05:04
2007.09.16
Послать сообщение в Edit1.text


3-1179436348
КрЫска
2007-05-18 01:12
2007.09.16
Написать SQL-запрос, осуществляющий выборку из 2-х таблиц.


15-1187336496
ProgRAMmer Dimonych
2007-08-17 11:41
2007.09.16
Подкиньте, плз, значки для тем форума


15-1187538724
Piter
2007-08-19 19:52
2007.09.16
Очень классная иллюзия