У меня есть макрос для вставки в данные с разделителями табуляции и добавления цветовых кодов на основе последнего столбца. Я проблема в том, что я пытаюсь сконденсировать данные, удаляя строки, у которых последний столбец равен 1-5. Однако строка в этом условном случае ничего не делает. Я подтвердил, что он работает с правильными строками, используя msgbox. Есть что-то, чего я не хватает?Удаление определенных строк с помощью макроса VBA
ActiveWorkbook.Save
Application.ScreenUpdating = False
Dim x, rowStart, colStart As Integer
Dim rng As Range
Set rng = Range(Selection.Address)
colStart = rng.Column
rowStart = rng.Row
rng.PasteSpecial
Set rng = Range(Selection.Address)
Selection.TextToColumns Destination:=rng, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1)), _
TrailingMinusNumbers:=True
For x = (rowStart + 1) To (rowStart + Application.WorksheetFunction.CountA(Selection) - 1)
If ActiveSheet.Cells(x, colStart + 13) = "0" Then
ActiveSheet.Range(ActiveSheet.Cells(x, colStart), ActiveSheet.Cells(x, colStart + 13)).Style = "Good"
ElseIf ActiveSheet.Cells(x, colStart + 13) > 0 And ActiveSheet.Cells(x, colStart + 13) < 6 Then
ActiveSheet.Range(ActiveSheet.Cells(x, colStart), ActiveSheet.Cells(x, colStart + 13)).EntireRow.Delete
ElseIf ActiveSheet.Cells(x, colStart + 13) = "6" Or ActiveSheet.Cells(x, colStart + 13) = "7" Then
ActiveSheet.Range(ActiveSheet.Cells(x, colStart), ActiveSheet.Cells(x, colStart + 13)).Style = "Neutral"
ElseIf ActiveSheet.Cells(x, colStart + 13) > 7 Then
ActiveSheet.Range(ActiveSheet.Cells(x, colStart), ActiveSheet.Cells(x, colStart + 13)).Style = "Bad"
End If
If ActiveSheet.Cells(x, colStart + 13) = "-" Then
ActiveSheet.Range(ActiveSheet.Cells(x, colStart), ActiveSheet.Cells(x, colStart + 12)).Style = "Normal"
End If
Next
ActiveSheet.Cells(rowStart, colStart).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection.Font
.Name = "Calibri"
.Size = 10
End With
ActiveSheet.Cells(rowStart, colStart + 4).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection
.HorizontalAlignment = xlRight
End With
ActiveSheet.Cells(rowStart, colStart).Select
Application.ScreenUpdating = True
End Sub