簡體   English   中英

在每個參數VBA excel中設置值

[英]Set value in each parameter VBA excel

欄位:

A       B       C
A001    OK
A002    OK
A003    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    OK
A004    NO
A004    OK
A004    OK
A004    OK
A004    OK
A006    OK
A007    OK
A008    OK
A010    OK
A010    OK
A015    OK
A015    NO

我想檢查A列和B列的值。如果B列的值為“ OK”,則該參數中的C列的值為“ OK”,但是如果每個副本參數中只有“ NO”,則所有復制參數的值均為“ NO”在C列中。我正在使用以下代碼。

for i= 1 to 100
    If Cells(i,1).value="A001" and cells(i,2).value="OK" then
        Cells(i,3).value "OK"
    end if
next i

但這在C列中沒有值

我應該怎么做?

我建議為此使用公式。 所以你可以使用

=IF(AND(A1="A001",B1="OK"),"OK","")

現在回答您的問題...

  1. 這可能是因為您缺少“ =“登錄Cells(i,3).Value "OK"

  2. 這可能是因為您要寫入的工作表可能沒有激活? 因此,您應該始終限定對象。 類似於ThisWorkbook.Sheets("Sheet1").Cells(i,1)這樣的代碼

     For i = 1 To 100 With ThisWorkbook.Sheets("Sheet1") If .Cells(i, 1).Value = "A001" And .Cells(i, 2).Value = "OK" Then .Cells(i, 3).Value = "OK" End If End With Next i 
  3. 如果仍然不起作用,則Col A和Col B的文本中可能有空格。您可能需要將上面的代碼修改為此

     For i = 1 To 100 With ThisWorkbook.Sheets("Sheet1") If UCase(Trim(.Cells(i, 1).Value)) = "A001" And UCase(Trim(.Cells(i, 2).Value)) = "OK" Then .Cells(i, 3).Value = "OK" End If End With Next i 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM