我有一个电子表格,上面有许多分别命名和编号的文本框。有两种文本框,大文本框和小文本框。我已将所有大型的“电梯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
答案 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