2012-12-28 27 views
1

Excel的背景
我2 Excel列和行的長記錄。 (僅爲示例,因爲我有超過10列)更換/更新/修改單元格值如果來自同一列中的另一小區包含X

A列 - 它是「是或否」 列B - 是一個註釋。可以鍵入任何內容,我需要


它是如何工作
這是一個訂購系統,如果日期被延遲,列A將顯示「是」 如果沒有延遲,則顯示「無」


我需要
我需要的VBA代碼來執行以下操作:

如果列B2包含文本「無延遲」,列A2將從「是」改變「否」


我已經測試

Private Sub UpdateColumnA() 
    Dim x As Long 
    For x = 4 To 65536 
    Dim InStr As String 

    If InStr(1, Sheet1.Range("$M$" & x), "No Delay") Then 
     Sheet1.Range("$K$" & x) = Sheet1.Range("$K$" & x) & "No" 
     End If 

    Next 
    End Sub 

問題我上面碰到的是,列A2 「是」 會變成 「YESNO」。我需要將「是」更換爲「否」,而不是添加到現有文本中。

如果B2文本「無延遲」不完全匹配,它不會在所有的工作,所以我想這是不區分大小寫,如「無延遲」,「無延遲」也可以。

回答

2

選項vbTextCompare可以使比較不區分大小寫:

InStr(1, Sheet1.Range("$M$" & x), "No Delay", vbTextCompare) 

和簡單的分配將避免值的單元格中的級聯( 「YesNo」):

Sheet1.Range("$K$" & x).Value = "No" 
+0

請訪問http: //stackoverflow.com/a/1099539/6309上的選項'vbTextCompare' – VonC

+0

現在改爲「否」。它變成「假」。 – user1935007

+0

@user try =「」&「No」,以強制*字符串*值。 – VonC

相關問題