簡體   English   中英

Excel VBA代碼根據相鄰單元格數字范圍用文本替換空單元格

[英]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 ,則該公式應引用C5B5 ,而不是C3 假設我們正在查看的表是ActiveSheetActiveSheet激活),則以上代碼按預期工作。

編輯

如果要刪除對列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.

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