Работа со всеми ячейками в столбце является проблемой, поскольку невозможно установить Range
для столбца.Range
должен быть непрерывным набором символов в документе.В то время как столбец выглядит смежным, за кулисами его содержание фактически отсутствует.Символы таблицы располагаются сверху слева и справа и сверху вниз (строки).
Ближайший код, который можно получить, - это выбрать столбец и затем работать в объекте Selection
.Или зацикливание строк.
Следующий пример кода демонстрирует, как «зацикливать строки» - аналогично тому, что использует код в вопросе.Ключевым моментом здесь является использование Table.Cells
для цикла, при этом счетчик For
обозначает индекс строки, а номер столбца (2) обозначает индекс столбца.
Sub ProcessColTwo()
Dim tbl As Word.Table
Dim nrRows As Long, ColToCheck As Long, i As Long
Dim cellRange As Word.Range
Set tbl = ActiveDocument.Tables(1)
nrRows = tbl.Rows.Count
ColToCheck = 2
For i = nrRows To 1 Step -1
Set cellRange = tbl.Cell(i, ColToCheck).Range
If Len(cellRange.text) = 2 Then
cellRange.Rows(1).Delete
End If
Next i
End Sub
А вот код, который демонстрируетиспользуя Selection
Sub ProcessColTwo()
Dim tbl As Word.Table
Dim ColToCheck As Long
Dim cel As Word.Cell
Set tbl = ActiveDocument.Tables(1)
ColToCheck = 2
tbl.Columns(ColToCheck).Select
For Each cel In Selection.Cells
If Len(cel.Range.text) = 2 Then
cel.Range.Rows(1).Delete
End If
Next
End Sub