我想知道是否有人可以解释属性range.formula如何更详细地解释vba基本帮助。
我想使用此属性来测试所有单元格是否在范围内为空。 (我知道,我可以输入很多其他代码来测试它,但我想知道如何使用这个属性)。
例如,如果我想检查范围内的所有单元格(" A1:A10")我只是这样做了。
Private Sub cell_in_range()
Dim i As Integer
Dim iTest As Integer
i = 1
Do While i <= 10 And iTest = 0
iTest = VBA.Len(Sheet17.Range("A" & i).Formula)
If iTest > 0 Then
Call VBA.MsgBox("Not all cells empty")
End If
i = i + 1
Loop
If VBA.Len(shee17.Range("A" & i)) = 0 Then
Call VBA.MsgBox("All cells empty")
End If
End Sub
这有效但如果我想以这种方式检查例如单元格范围(&#34; A1:X1000&#34;) 我再次知道,而不是范围我可以嵌套做while循环并更改单元格索引像单元格(i,j) 但我想再次使用属性range.formula
我花了一个小时来谷歌如何定义二维数组的公式。任何人都可以更详细地解释这个主题。
谢谢,
答案 0 :(得分:1)
这有任何帮助吗?
Sub formulatest()
Dim r As Range, rng As Range
Set rng = Range("A1:X1000")
For Each r In rng
If r.HasFormula Then
MsgBox "cell " & r.Address & " has a formula"
Exit Sub
End If
Next r
MsgBox "no cells have formulas"
End Sub
修改#1:强>
你不需要循环。对于范围 A1:B2 :
Sub dural()
Dim rng As Range
Set rng = Range("A1:B2")
arr = rng.Formula
For Each a In arr
MsgBox a
Next a
End Sub
答案 1 :(得分:0)
.formula属性用于设置或返回特定范围中包含的公式。如果范围包含多个单元格,则该属性返回二维数组。
我会使用以下说明
Application.Count(Range("A1:X1000"))
如果返回0,则所有单元格都为空。