Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
2-1187587032
Александр_К
2007-08-20 09:17
2007.09.16
Сокеты


9-1160220897
alpha5
2006-10-07 15:34
2007.09.16
Углы поворота


2-1187597172
tomkat
2007-08-20 12:06
2007.09.16
Компоненты в консольном приложении


15-1187663110
Engine1
2007-08-21 06:25
2007.09.16
Как числа Single и Double представлены с точки зрения бит?


2-1188031167
led
2007-08-25 12:39
2007.09.16
Формы




   Наверх