读取一列的所有行&显示在运行时创建的文本框上。经过几次没有帮助的尝试,我正在转向寻求下面的帮助。
Name
ABC
AB
ABCEF
GHFD
我希望excel表格中的所有行都显示在文本框中,就像它们出现在特定列的工作表中一样。我创建了4个表示列和文本框的文本框。 11个表示行的文本框。对于第一列,我希望数据显示在工作表中。我按照我的要求成功创建了文本框,但无法根据需要显示数据。非常感谢您的帮助
Public 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
For jrow = 1 To 11
For i = 0 To 4
Set txtB1 = WtmsFrm.Controls.Add("Forms.TextBox.1")
With txtB1
.Name = "chkDemo" & i
.Height = 20
.Width = 5 + 50 + 5
.Left = 10 + 50 * i + 2
.Top = 15 * jrow + 10
.ControlTipText = "Type of Bug"
End With
Next i
Next jrow
For Each tbox In Frm.Controls
' For counter = 2 To 11
If tbox.Name = "chkDemo" Then
tbox.Value = Sheets("sheet1").Cells(counter, 2).Value ' failing code
tbox.ControlTipText = "Name"
ElseIf tbox.Name = "chkDemo1" Then
tbox.Value = 1
ElseIf tbox.Name = "chkDemo2" Then
tbox.Value = 2
ElseIf tbox.Name = "chkDemo3" Then
tbox.Value = 3
ElseIf tbox.Name = "chkDemo4" Then
tbox.Value = 4
End If
' Next counter
Next
' Initialise the followings
Frm.txtFatal.Value = fatalcount
Frm.txtMajor.Value = Majorcount
Frm.txtMinor.Value = Minorcount
Frm.txtTotoal.Value = fatalcount + Majorcount + Minorcount
End Sub
答案 0 :(得分:0)
我没有看到您创建名为"chkDemo"
的文本框。他们都附加了一个数字。当您从所有控件中取出tbox
时,您的工作表上可能会有一个名为"chkDemo"
但不是文本框的控件。我也没有看到counter
声明或初始化。这也可能让代码失败。
另请注意,对于.Name = "chkDemo" & i
,您为文本框指定了相同的名称,因为您也处于For jrow
循环中。