如何在电子表格上计算两个不同大小的文本框?

时间:2018-07-25 13:53:27

标签: excel vba

我有一个电子表格,上面有许多分别命名和编号的文本框。有两种文本框,大文本框和小文本框。我已将所有大型的“电梯1”命名为“电梯1”,将小型的命名为“电梯1”命名为20。我还具有与每个文本框链接的复选框,这些复选框使相应的文本框在未选中时消失。我正在尝试为每种类型的文本框创建一个计数器,以计算在电子表格上可见多少个文本框。下面的代码给我一个错误,说:“运行时错误'1004'应用程序定义的错误或对象定义的错误”。我已经将计数器命名为“ NumberOfRisers”的单元格命名,并将工作表命名为“ LobbyCars”。

    Sub NumberOfRisers()

    Dim counter As Long

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

    counter = ActiveSheet.Shapes.Count

    Worksheets("LobbyCars").Range(“NumberOfRisers”) = counter

    Next

    End Sub

1 个答案:

答案 0 :(得分:2)

这里有一个Function,它将根据其名称和可见性对工作表上的文本框进行计数。

Private Function CountTextBoxes(txtBoxName As String, ws As Worksheet) As Integer
    Dim i As Integer

    If ws.Shapes.Count > 0 Then
        For i = 1 To ws.Shapes.Count
            With ws.Shapes(i)
                If .Type = msoTextBox And InStr(1, .Name, txtBoxName) And .Visible Then CountTextBoxes = CountTextBoxes + 1
            End With
        Next i
    End If

End Function

Sub CountMyTextBoxes()
    Debug.Print CountTextBoxes("Elevator", Sheets("Lobby Cars"))
    Debug.Print CountTextBoxes("Riser", Sheets("Lobby Cars"))
End Sub