如何在运行时在vba中的userform的文本框中显示过滤的值

感谢您审查我的问题:)我在运行时在用户窗体上创build一个文本框,并希望在其上显示过滤的数据。 我为以下代码运行许多运行时错误。 对于第一个文本框,我想显示一个fatalcount,对于第二个文本框,它应该是Majorcount&最后一个文本框,它应该是minorcount。 有人能指导我正确的道路吗? 提前致谢

Private Sub UserForm_Initialize() Set sh = ThisWorkbook.Sheets("Testing") sh.Range("F21").Activate With sh fatalcount = WorksheetFunction.CountIf(Range("F:F"), "Fatal") 'MsgBox fatalcount Majorcount = WorksheetFunction.CountIf(Range("F:F"), "Major") 'MsgBox Majorcount Minorcount = WorksheetFunction.CountIf(Range("F:F"), "Minor") 'MsgBox Minorcount 'Add a text box at run time Dim txtB1 As Control Dim i For i = 0 To 5 Set txtB1 = Me.Controls.Add("Forms.TextBox.1") With txtB1 .Name = "chkDemo" & i .Height = 20 .Width = 100 .Left = 12 .Top = 15 * i * 2 .Text.i = fatalcount ' problem lines .Text.i 1 = Majorcount .Text.i 2 = Minorcount End With Next i End Sub 

希望这是你在找什么。

 Private Sub UserForm_Initialize() Set sh = ThisWorkbook.Sheets("Testing") sh.Range("F21").Activate With sh fatalcount = WorksheetFunction.CountIf(Range("F:F"), "Fatal") Majorcount = WorksheetFunction.CountIf(Range("F:F"), "Major") Minorcount = WorksheetFunction.CountIf(Range("F:F"), "Minor") End With Dim txtB1 As Control Dim i For i = 0 To 2 Set txtB1 = UserForm1.Controls.Add("Forms.TextBox.1") With txtB1 .Name = "chkDemo" & i .Height = 20 .Width = 100 .Left = 12 .Top = 15 * i * 2 End With Next i Dim tbox As Control For Each tbox In UserForm1.Controls If tbox.Name = "chkDemo0" Then tbox.Value = fatalcount ElseIf tbox.Name = "chkDemo1" Then tbox.Value = Majorcount ElseIf tbox.Name = "chkDemo2" Then tbox.Value = Minorcount End If Next End Sub