У меня есть проблема, проходящая через лист, чтобы найти строку, соответствующую некоторым переменным.Проверка VBA, если строка в листе содержит несколько переменных.
У меня есть 8 столбцов на строку, и я хочу, чтобы найти строку, содержащую 6 переменных, одну пустую ячейку и одну ячейку со значением 0. Как это:
- | A | B | C | D | E | F | G | H | i | x1 | | x2 | 0 | x3 | x4 | x5 | x6 |
Где i
находится ряд число и x1
, x2
, .. x6
- переменные, полученные из файла CSV. Я хочу проверить, является ли мой «список» переменных {x1, ,x2,0,x3,x4,x5,x6}
существующей строкой в листе. Поэтому я хочу, чтобы программа сделала что-то If (Ai = x1 And Bi = "" And Ci = x2 And Di = "0" And Ei = x3 And Fi = x4 And Gi = x5 And Hi = x6)
и ничего не делала, когда Else
.
Так что мне нужно пройти через все строки и проверить, все ли переменные в 1 строке.
На данный момент я пробовал это, но он, похоже, не работает.
LastCol = 8
LastRow = ThisWorkbook.Sheets("Boekingen AMS-IAD").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
For j = 1 To LastCol
'Tried with only 1 criteria, still didn't work
If (ThisWorkbook.Sheets("Boekingen AMS-IAD").Cells(i, j).Value = x1) Then
Accept = "nvt"
End If
Next j
Next i
Должны ли они быть в таком порядке или вы хотите проверить, содержит ли строка их все в любом порядке? – GSerg
Как это работает? Вы получили сообщение об ошибке? FYI вы должны * всегда * определять диапазоны, поэтому измените свою строку на: 'LastRow = ThisWorkbook.Sheets (« Boekingen AMS-IAD »). Диапазон (« A »и« ThisWorkbook.Sheets »(« Boekingen AMS-IAD »). Строки. Count) .End (xlUp) .Row' – BruceWayne
GSerg yes, они должны быть в указанном порядке. У меня нет ошибки, она просто не дает выход «nvt» для Accept, пока он должен это делать. Особенно сейчас у меня есть только один из 8 критериев, где я уверен, что существует более одной строки, которая содержит значение переменной x1. – Stan