Если ячейка таблицы равна значению переменной - PullRequest
1 голос
/ 15 марта 2019

Я нашел много помощи для удаления строки, если ячейка равна числу, указанному в коде, но у меня возникают проблемы при удалении строки таблицы, если значение ячейки равно значению переменной.

(Это моя первая попытка в VBA и первое использование такого сайта для поиска помощи по любому вопросу. Я ценю любую помощь, которую вы можете оказать.)

Sub NeverGonnaWork

Dim x as String

x = Sheets("Sheet1").Range("B5").Value

Dim tbl as ListObject

Set tbl = Sheets("Sheet2").ListObjects("Table2")

'if column 15 in last row of the table equals x, delete that row of the table'

If Cells(tbl.ListRows.Count, (15)) = x then
tbl.ListRows(tbl.ListRows.Count).Delete

End If

End Sub

1 Ответ

0 голосов
/ 15 марта 2019

Это "не работает" , потому что вы ссылаетесь Worksheet.Cells(<amount of rows in table>, 15), а не на фактическую позицию ячейки внутри таблицы.

Другими словами,вы просто ссылаетесь на некоторую "случайную" ячейку в вашей Worksheet.

Измените свой код на это, и оно должно работать ;-)

Private Sub thisWillWork()

  Dim compVal as String: compVal = Sheets("Sheet1").Range("B5").Value2
  Dim tbl as ListObject: Set tbl = Sheets("Sheet2").ListObjects("Table2")

  If tbl.ListRows(tbl.ListRows.Count).Range(,15) = compVal Then
     tbl.ListRows(tbl.ListRows.Count).Delete
  End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...