[英]excel vba code to replace empty cell with text based on adjacent cells number range
請幫助我,我對excel感到沮喪。 可能是因為我對此不太滿意。 我的任務如下。 取c列中的所有空白單元格,引用b列中相鄰單元格中的值,然后在該單元格中打印一條語句。
我嘗試此功能無濟於事。
= IF(AND(C3 =“”,0 <B3 <5000),“訂購更多”,“不訂購”)
我有一個循環錯誤。 所以我認為我必須使用VBA。
這是我到目前為止的代碼片段:
Worksheets("Sheet1").Activate
For Each rw In Sheet1.Rows
If rw.Columns("C") = "" and range.rw.Columns("B")
我不確定如何使其全部正常工作。 我什至不知道那是正確的。 我一直在嘗試使用互聯網來提供幫助,但這更加令人困惑。
我認為您不需要VBA。
您的公式應該是
=IF(AND(C3 = "", 0 < B3, B3 < 5000), "Order More", "Don't Order")
如果您遇到循環錯誤,那是因為您要將公式放在B3或C3中。 從邏輯上講它將在A3或D3中?
自從發布以來作為回應
經過測試,它適用於Excel 2010。
Sub test() Dim lFirstBlank As Long, lLastRow As Long Dim rRange As Range lLastRow = Cells(Rows.Count, 3).End(xlUp).Row lFirstBlank = _ Range("C3:C" & lLastRow).SpecialCells(xlCellTypeBlanks).Cells(1, 1).Row Set rRange = Range("C" & lFirstBlank & ":C" & _ lLastRow).SpecialCells(xlCellTypeBlanks) rRange.Formula = _ "=IF(AND(B" & lFirstBlank & ">0,B" & lFirstBlank & "<5000)," & Chr(34) & _ "Order More" & Chr(34) & "," & Chr(34) & "Don't Order" & Chr(34) & ")" rRange.Value = rRange.Value End Sub
問題是,我們需要找到第一個空白單元格,並在其中輸入相對於該單元格的參考公式(第一個空白),據我從您最近的回復中了解到。 例如,如果第一個空白單元格為C5
,則該公式應引用C5
和B5
,而不是C3
。 假設我們正在查看的表是ActiveSheet
( ActiveSheet
激活),則以上代碼按預期工作。
編輯
如果要刪除對列B
的依賴關系,可以添加以下行
rRange.Value = rRange.Value
這將刪除公式依賴性,並將僅保留值(如僅粘貼值)。
我之所以沒有寫公式的原因是
=IF(AND(C3 = "", 0 < B3, B3 < 5000), "Order More", "Don't Order")
那是
C3
確定的值C3
。 0 < B3 < 5000
,然后返回“訂購更多”或“不訂購”。 因此,我的理解是,不應觸摸非空白單元格,而以上公式將覆蓋非空白單元格上寫的內容,並在其中寫上“不要排序”。 我希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.