请帮助我,我对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")
我不确定如何让一切顺利。我甚至都不知道这是否正确。我一直试图利用互联网提供帮助,但这更令人困惑。
答案 0 :(得分:0)
我认为你不想要VBA 你的公式应该是
=IF(AND(C3 = "", 0 < B3, B3 < 5000), "Order More", "Don't Order")
如果您收到循环错误,那是因为您将公式放在B3或C3中。 它逻辑上是A3还是D3?
答案 1 :(得分:0)
自
以来将此作为回复发布经过测试,适用于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
(即,它被激活)。
修改强>
如果我们要删除对列B
的依赖关系,我们可以添加一行
rRange.Value = rRange.Value
这将删除公式依赖项,并仅保留值(例如仅粘贴值)。
我没有把公式写成
的原因=IF(AND(C3 = "", 0 < B3, B3 < 5000), "Order More", "Don't Order")
就是那个
C3
的值来确定C3
的值。0 < B3 < 5000
应用于空白单元格你在问题中提到,并返回&#34;订购更多&#34;或者&#34;不要订购&#34;。所以我的理解是不应该触摸非空白单元格,而上面的公式将覆盖写在非空白单元格上的任何内容并写在那里&#34;不要订购& #34; 我希望这有帮助!