如何为二维数组

时间:2016-08-29 14:43:28

标签: excel vba excel-vba properties formula

我想知道是否有人可以解释属性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

我花了一个小时来谷歌如何定义二维数组的公式。任何人都可以更详细地解释这个主题。

谢谢,

2 个答案:

答案 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

enter image description here

答案 1 :(得分:0)

.formula属性用于设置或返回特定范围中包含的公式。如果范围包含多个单元格,则该属性返回二维数组。

我会使用以下说明

Application.Count(Range("A1:X1000"))

如果返回0,则所有单元格都为空。