首页 > 解决方案 > 如何计算电子表格上两个不同大小的文本框?

问题描述

我有一个电子表格,上面有许多分别命名和编号的文本框。有两种文本框,大的和小的。我将所有大的“电梯 1”命名为最多 12 个。我将小的“提升器 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

标签: excelvba

解决方案


这是一个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

推荐阅读