L oop через таблицы заголовков в Excel с VBA - PullRequest
0 голосов
/ 16 апреля 2020

For Each headerRange In tblStueckpreis.Range.Rows(1) If tblStueckpreis.DataBodyRange.Cells.Value Like "*Staffel*" Then numbersStaffel = numbersStaffel + 1 End If Next

Я хотел провести l oop через заголовок моей таблицы и проверить, когда в заголовке написано "Staffel". Я много чего перепробовал, и это не сработало ... Что я делаю не так? Помогите мне, пожалуйста.

1 Ответ

0 голосов
/ 16 апреля 2020

вам не нужно l oop, просто используйте WorksheetFunction.CountIf():

numbersStaffel = WorksheetFunction.CountIf(tblStueckpreis.Range.Rows(1), "*Staffel*")

, если вам нужно придерживаться цикла, затем используйте:

For Each headerRange In tblStueckpreis.Range.Rows(1).Cells
    If headerRange.Value Like "*Staffel*" Then numbersStaffel = numbersStaffel + 1
Next

в то время как возможно, вы захотите получить информацию о том, что в вашем коде есть две проблемы:

1, вы настроили al oop как For Each headerRange In tblStueckpreis.Range.Rows(1), но никогда не используете его переменную итератора (то есть: headerRange) внутри него

2 tblStueckpreis.DataBodyRange.Cells.Value вернет двумерный массив со всеми значениями таблицы tblStueckpreis, который нельзя сравнить с String значением

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