Основная проблема, с которой я столкнулся, заключается в том, что я не могу определить, какие параметры должны в первую очередь остановить поиск значения пользователя.Ниже приведен фрагмент моего кода, над которым я работаю
xrow = 1
For x = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(1, ws1.Cells(x, 1), UserValue, vbTextCompare) > 0 Then
ws1.Cells(x, 3) = ws2.Cells(20, 6).Value
ws1.Cells(x, 4) = ws2.Cells(20, 7).Value
ws1.Cells(x, 5) = ws2.Cells(20, 8).Value
ws1.Cells(x, 6) = Application.Sum(Range(ws1.Cells(x, 3), ws1.Cells(x, 5)))
ws1.Cells(x, 7) = ws5.Cells(9, 8).Value
StratTotal = ws1.Cells(x, 6).Value
ws1.Cells(x, 8) = ws3.Cells(87, 6).Value
ws1.Cells(x, 9) = ws3.Cells(87, 7).Value
ws1.Cells(x, 10) = ws3.Cells(87, 8).Value
ws1.Cells(x, 11) = Application.Sum(Range(ws1.Cells(x, 8), ws1.Cells(x, 10)))
ws1.Cells(x, 12) = ws5.Cells(9, 9).Value
OpsTotal = ws1.Cells(x, 11).Value
ws1.Cells(x, 13) = ws4.Cells(15, 6).Value
ws1.Cells(x, 14) = ws4.Cells(15, 7).Value
ws1.Cells(x, 15) = ws4.Cells(15, 8).Value
ws1.Cells(x, 16) = Application.Sum(Range(ws1.Cells(x, 13), ws1.Cells(x, 15)))
ws1.Cells(x, 17) = ws5.Cells(9, 10).Value
CompTotal = ws1.Cells(x, 16).Value
Cumulative = StratTotal + OpsTotal + CompTotal
ws1.Cells(x, 2) = Cumulative
ElseIf x >= 350 Then
firstEmptyRow = ws1.Cells(x, "A").End(xlUp).Row
ws1.Cells(firsEmptyRow, 1).Value = UserValue
ws1.Cells(firstEmptyRow, 3) = ws2.Cells(20, 6).Value
ws1.Cells(firstEmptyRow, 4) = ws2.Cells(20, 7).Value
ws1.Cells(firstEmptyRow, 5) = ws2.Cells(20, 8).Value
ws1.Cells(firstEmptyRow, 6) = Application.Sum(Range(ws1.Cells(firstEmptyRow, 3), ws1.Cells(firstEmptyRow, 5)))
ws1.Cells(firstEmptyRow, 7) = ws5.Cells(9, 8).Value
StratTotal = ws1.Cells(firstEmptyRow, 6).Value
ws1.Cells(firstEmptyRow, 8) = ws3.Cells(87, 6).Value
ws1.Cells(firstEmptyRow, 9) = ws3.Cells(87, 7).Value
ws1.Cells(firstEmptyRow, 10) = ws3.Cells(87, 8).Value
ws1.Cells(firstEmptyRow, 11) = Application.Sum(Range(ws1.Cells(firstEmptyRow, 8), ws1.Cells(firstEmptyRow, 10)))
ws1.Cells(firstEmptyRow, 12) = ws5.Cells(9, 9).Value
OpsTotal = ws1.Cells(firstEmptyRow, 11).Value
ws1.Cells(firstEmptyRow, 13) = ws4.Cells(15, 6).Value
ws1.Cells(firstEmptyRow, 14) = ws4.Cells(15, 7).Value
ws1.Cells(firstEmptyRow, 15) = ws4.Cells(15, 8).Value
ws1.Cells(firstEmptyRow, 16) = Application.Sum(Range(ws1.Cells(firstEmptyRow, 13), ws1.Cells(firstEmptyRow, 15)))
ws1.Cells(firstEmptyRow, 17) = ws5.Cells(9, 10).Value
CompTotal = ws1.Cells(firstEmptyRow, 16).Value
Cumulative = StratTotal + OpsTotal + CompTotal
ws1.Cells(firstEmptyRow, 2) = Cumulative
End If
По сути, я ищу в столбце А рабочего листа, чтобы найти имя, которое вводит пользователь, и, если оно найдено, я 'm вставка значений из листов другой рабочей книги в столбцы этой строки.
Часть, упомянутая в предыдущем абзаце, работает, но я также хочу добавить функциональность, когда после поиска в этом столбце и не найдя значения пользователя,макрос добавляет это значение (имя) в первый столбец, а затем выводит те же значения.В данный момент я добавил произвольную остановку строки 350 для цикла, так как не знал, как еще это сделать.В настоящее время значение не вставляется в первую пустую строку, и я беспокоюсь, что это может произойти из-за произвольной остановки.