#excel #vba #if-statement
#excel #vba #if-оператор
Вопрос:
У меня есть список запасов, столбец 27 — это ячейка, а столбец 42 — количество. Аргумент выглядит следующим образом, если столбец 27 = SO000 и 42 = 0, то исключите их из списка этот аргумент ниже отлично работает для аргумента 1:
With WbCSV.Sheets(1)
vDB = .UsedRange
For i = 1 To UBound(vDB, 1)
'AA column = 27, AP column = 42
If vDB(i, 27) = "SO0000" And vDB(i, 42) = 0 Then
Else
'Get the contents corresponding to the dynamic array. Bring the matrix to the inverted state.
n = n 1
ReDim Preserve vR(1 To 5, 1 To n)
vR(1, n) = vDB(i, 1)
vR(2, n) = vDB(i, 2)
vR(3, n) = vDB(i, 3)
vR(4, n) = vDB(i, 27)
vR(5, n) = vDB(i, 42)
End If
Next i
End With
'Colse the text file
WbCSV.Close (0)
'The dynamic array is recorded in sheet2.Bring the row to the inverted state.
With Ws
.UsedRange.Clear
.Range("a1").Resize(n, 5).Value = WorksheetFunction.Transpose(vR)
End With
Worksheets("Sheet2").Columns("A:E").AutoFit
Application.ScreenUpdating = True
Но теперь я застрял, мне нужно добавить больше аргументов. Если столбец 27 = WG0000 и col 42 = 0, тогда исключите элементы. И SR0000 = 0 исключить из списка.
Может кто-нибудь мне помочь? Потому что я не уверен, как добавить дополнительные аргументы
Ответ №1:
Я не уверен, что полностью понимаю, какой аргумент вы хотите добавить ( SR0000 = 0
?), Но похоже, вам нужно elseif
утверждение.
With WbCSV.Sheets(1)
vDB = .UsedRange
For i = 1 To UBound(vDB, 1)
'AA column = 27, AP column = 42
If vDB(i, 27) = "SR0000" And vDB(i, 42) = 0 Then
ElseIf vDB(i, 27) = "WG0000" And vDB(i, 42) = 0 Then
'any further ElseIf statements can be added with a different set of conditions
Else 'This gets triggered only if none of the If or ElseIf condition sets were met.
'Get the contents corresponding to the dynamic array. Bring the matrix to the inverted state.
n = n 1
ReDim Preserve vR(1 To 5, 1 To n)
vR(1, n) = vDB(i, 1)
vR(2, n) = vDB(i, 2)
vR(3, n) = vDB(i, 3)
vR(4, n) = vDB(i, 27)
vR(5, n) = vDB(i, 42)
End If
Next i
End With
Комментарии:
1. Привет, Спенсер, спасибо за ответ. В принципе, да, есть 3 ячейки SO0000, SR0000 и WG0000, если их количество равно нулю, их следует исключить из списка, который переносится на лист 2. Я протестирую его и посмотрю, работает ли он.