我需要一个代码,如果在列BM中有“Good PG”,则应该运行以下条件
`Dim val As Range
Dim myrange As range
Dim ws_zfi As Worksheet
Set ws_zfi = ActiveWorkbook.Sheets("ZFIGLABACUS")
lastrow_d = ws_zfi.Cells(Rows.Count, 2).End(xlUp).Row
set myrange = ws_zfi.Range("BM3:BM" & lastrow_d)
For Each val In myrange
For Each val In myrange
If val.Value = "Good PG" Then
ws_zfi.Range("BO3:BO" & lastrow_d).FormulaR1C1 = "=VLOOKUP(RC[-23],'ABACUS BU VALIDATION'!C5:C6,2,0)"
Else
If val.Value = "To check" Then
ws_zfi.Range("BO3:BO" & lastrow_d).FormulaR1C1 = "=VLOOKUP(RC[2],'ABACUS BU VALIDATION'!C3:C6,4,0)"
End If
End If
Next val
但是在运行代码后,如果存在“No Good PG”,那么也只有一个条件正在运行,如果它不是“Good PG”,则应该运行第二个条件但是对于BM列中的所有行,只有第一个条件正在运行。 我没有得到我错的地方。
答案 0 :(得分:0)
代码中有几个问题:
Dim myrange As String
应为Dim myrange As Range
myrange = ws_zfi.Range("BM3:BM100000")
应为Set myrange = ws_zfi.Range("BM3:BM100000")
另外,可能
ws_zfi.Range("BO3:BO").FormulaR1C1
应为ws_zfi.Range("BO3:BO" & lastrow_d).FormulaR1C1
myrange = ws_zfi.Range("BM3:BM100000")
应为myrange = ws_zfi.Range("BM3:BM" & lastrow_d)
答案 1 :(得分:0)
VBA中的if条件是这样的:
if(Condition(s)) then
'Code Block Here
End If