Мне нужно извлечь значения из определенного столбца за строкой из TAB2, а затем выполнить поиск этого значения в трех разных столбцах и еще нескольких методах в TAB1. Мне нужно подсчитать на основе указанных ограничений и автозаполнения 4 столбца рядом с соответствующим значением в TAB2.Ошибка с инструкцией ElseIf
У меня есть следующий код, где я получаю значение при нажатии на кнопку, а затем выполнить операцию, поиск и рассчитывать исходя из условия, указанного .:
Option Compare Text
Sub SO()
Dim cCount As Long, ciyr1 As Long, ciyr2 As Long, csyr2 As Long
Dim i As Long, inputString As String, group As String
Dim yr1 As String, yr2 As String
Dim inc As String, sr As String
inputString = InputBox("Enter Application Name:", "Input Box Text")
group = "gbl cecc sustainment"
yr1 = "2013/**"
yr2 = "2014/**"
inc = "Incident"
sr = "Request"
cCount = 0
ciyr1 = 0
ciyr2 = 0
csyr1 = 0
csyr2 = 0
ThisWorkbook.Activate
Set ws = Worksheets("extract")
With ws
For i = 2 To 15505
If InStr(Cells(i, 1).Value, group) > 0 And _
InStr(Cells(i, 2).Value, inputString) > 0 Or _
InStr(Cells(i, 10).Value, inputString) > 0 Or _
InStr(Cells(i, 11).Value, inputString) > 0 Or _
InStr(Cells(i, 3).Value, inc) > 0 And _
InStr(Cells(i, 14).Value, yr1) > 0 Then ciyr1 = ciyr1 + 1 'to check if value at cells(i,14) is anything that starts with "2013". (the value being present are 2013/01, 2013/02, etc..)
ElseIf InStr(Cells(i, 1).Value, group) > 0 And _ 'I get a error with a message: else without If
InStr(Cells(i, 2).Value, inputString) > 0 Or _
InStr(Cells(i, 10).Value, inputString) > 0 Or _
InStr(Cells(i, 11).Value, inputString) > 0 Or _
InStr(Cells(i, 3).Value, inc) > 0 And _
InStr(Cells(i, 14).Value, yr2) > 0 Then ciyr2 = ciyr2 + 1
ElseIf InStr(Cells(i, 1).Value, group) > 0 And _
InStr(Cells(i, 2).Value, inputString) > 0 Or _
InStr(Cells(i, 10).Value, inputString) > 0 Or _
InStr(Cells(i, 11).Value, inputString) > 0 Or _
InStr(Cells(i, 3).Value, sr) > 0 And _
InStr(Cells(i, 14).Value, yr1) > 0 Then csyr1 = csyr1 + 1
ElseIf InStr(Cells(i, 1).Value, group) > 0 And _
InStr(Cells(i, 2).Value, inputString) > 0 Or _
InStr(Cells(i, 10).Value, inputString) > 0 Or _
InStr(Cells(i, 11).Value, inputString) > 0 Or _
InStr(Cells(i, 3).Value, sr) > 0 And _
InStr(Cells(i, 14).Value, yr2) > 0 Then csyr2 = csyr2 + 1
Else:
MsgBox "No matches found!!"
End If
Next i
End With
If ciyr1 < 0 Or _
ciyr2 < 0 Or _
csyr1 < 0 Or _
csyr2 < 0 Then
MsgBox "Number of matches for Inc 2013" & inputString & ciyr1
MsgBox "Number of matches for Inc 2014" & inputString & ciyr2
MsgBox "Number of matches for SR 2013" & inputString & csyr1
MsgBox "Number of matches for SR 2014" & inputString & csyr2
End If
End Sub
Может кто-то пожалуйста исправить ошибки, которые я сделали в приведенном выше коде
Также может кто-нибудь сказать мне, как принимать значения на вкладке один, а затем автозаполнения значения после выполнения цикла и условий
Можете ли вы объяснить, что такое ошибка/ошибка? Номер строки или что-то было бы полезно. Вы можете попробовать запустить макрос по строкам, используя 'shift + f8' – NickSlash
. Я получаю ошибку в моем первом elseif stmt .. Я прокомментировал это в коде, который я здесь тоже вставил – AnRu