在Excel VBA中,我想跟踪范围A1到A3和A7到A8是否填充了一个值。如果它填充了,我想在单元格B1中显示“就绪”,否则在单元格B1中不显示任何内容。我如何使用vba跟踪一系列单元格?
我不知道如何使用excel vba完成此操作。请帮助我。过去几个小时我一直在努力,没有任何运气。非常感谢。
在Excel VBA中,我想跟踪范围A1到A3和A7到A8是否填充了一个值。如果它填充了,我想在单元格B1中显示“就绪”,否则在单元格B1中不显示任何内容。我如何使用vba跟踪一系列单元格?
我不知道如何使用excel vba完成此操作。请帮助我。过去几个小时我一直在努力,没有任何运气。非常感谢。
考虑:
Sub DataTest()
Set r1 = Range("A1")
Set r2 = Range("A2")
Set r3 = Range("A3")
Set r7 = Range("A7")
Set r8 = Range("A8")
Set b1 = Range("B1")
If [r1] <> "" And [r2] <> "" And [r3] <> "" And [r7] <> "" And [r8] <> "" Then
b1.Value = "Ready"
End If
End Sub
我敢肯定,这心不是做到这一点的最好办法,但它为我工作。这就是我所做的。 我用工作表计算事件来做到这一点。由于我正在跟踪单元格A1到A3,我将它们的值分别等于单元格B1到B3。然后我设置这个代码来间接跟踪单元格A1到A3。
Private Sub Worksheet_Calculate()
Dim input_field As Boolean
input_field = True
If IsEmpty(Range("B1")) Or Range("B1").Value = 0 _
Or IsEmpty(Range("B2")) Or Range("B2").Value = 0 _
Or IsEmpty(Range("B3")) Or Range("B3").Value = 0 Then
input_field = False
Else
input_field = True
End If
If input_field = True Then
Range("C1") = "Ready"
Else
Range("C1") = ""
End If
End Sub
我不认为你需要VBA来做到这一点。为什么不使用单元格B1中的公式?示例(Excel 2013):'= IF(AND(A1 <>“”| A2 <>“”| A3 <>“”)|“Ready”|“”)' – Tak 2014-08-27 14:51:46
感谢您的回复。首先,我正在玩单元格B1中显示的一些单词。该程序将基于跟踪的单元格进行更多的计算。因此我需要用vba编码。 – schenker 2014-08-27 14:55:45
您可以添加代码信息到目前为止你已经尝试过吗?这将帮助他人协助你。 – Tak 2014-08-27 15:04:33