Здравствуйте! У меня вопрос по удалению строк из файла, удовлетворяющие конкретному условию Есть код: [vba]
Код
Sub Main() Dim i As Long, a(), b(): Application.ScreenUpdating = False a = Range([AH1], Cells(Cells(Rows.Count, 1).End(xlUp).Row, 4)).Value: ReDim b(1 To UBound(a, 1), 1 To 1) For i = 1 To UBound(a, 1): b(i, 1) = IIf(a(i, 1) <> "", "Фамилия.:" & a(i, 1) & ", ", "") & IIf(a(i, 2) <> "", "Имя: " & a(i, 2) & ", ", "") & IIf(a(i, 3) <> "", "Отчество:" & a(i, 3) & ", ", "") & IIf(a(i, 4) <> "", "Марка авто:" & a(i, 4), ""): Next Range([E2], Cells(UBound(b, 1) + 1, 5)).Value = b End Sub
[/vba]
Хотелось бы перед тем как объединять столбцы в файле, проверить строки на заполненость столбца под номером 9 на значение 200, и удалить все строки которые содержат иное значение. Не могу разобраться какой именно код должен быть для этого и в каком месте его лучше разместить, так чтоб синтаксис не нарушить.
В файле существует группировка, мало ли это важно.
Ну что то такое наверное: [vba]
Код
IIf (a(i,9)<>200, Rows(i).Delete,"")
[/vba]
В коде не силен, не судите строго, пытался написать сам, как правильно написать подобную строку, и где именно ее нужно разместить чтоб не писать дополнительны цикл по строкам, так сказать минимизировать код
Здравствуйте! У меня вопрос по удалению строк из файла, удовлетворяющие конкретному условию Есть код: [vba]
Код
Sub Main() Dim i As Long, a(), b(): Application.ScreenUpdating = False a = Range([AH1], Cells(Cells(Rows.Count, 1).End(xlUp).Row, 4)).Value: ReDim b(1 To UBound(a, 1), 1 To 1) For i = 1 To UBound(a, 1): b(i, 1) = IIf(a(i, 1) <> "", "Фамилия.:" & a(i, 1) & ", ", "") & IIf(a(i, 2) <> "", "Имя: " & a(i, 2) & ", ", "") & IIf(a(i, 3) <> "", "Отчество:" & a(i, 3) & ", ", "") & IIf(a(i, 4) <> "", "Марка авто:" & a(i, 4), ""): Next Range([E2], Cells(UBound(b, 1) + 1, 5)).Value = b End Sub
[/vba]
Хотелось бы перед тем как объединять столбцы в файле, проверить строки на заполненость столбца под номером 9 на значение 200, и удалить все строки которые содержат иное значение. Не могу разобраться какой именно код должен быть для этого и в каком месте его лучше разместить, так чтоб синтаксис не нарушить.
В файле существует группировка, мало ли это важно.
Ну что то такое наверное: [vba]
Код
IIf (a(i,9)<>200, Rows(i).Delete,"")
[/vba]
В коде не силен, не судите строго, пытался написать сам, как правильно написать подобную строку, и где именно ее нужно разместить чтоб не писать дополнительны цикл по строкам, так сказать минимизировать кодsi
Sub Delete_Rows() Application.ScreenUpdating = False Dim LastRow As Long LastRow = Cells(Rows.Count, 2).End(xlUp).Row For i = LastRow To 1 Step -1 If Cells(i, 6) <> 200 Then Rows(i).Delete Next i Application.ScreenUpdating = True End Sub
[/vba]
si, здравствуйте
[vba]
Код
Sub Delete_Rows() Application.ScreenUpdating = False Dim LastRow As Long LastRow = Cells(Rows.Count, 2).End(xlUp).Row For i = LastRow To 1 Step -1 If Cells(i, 6) <> 200 Then Rows(i).Delete Next i Application.ScreenUpdating = True End Sub