我有一个用于在工作时打印标签的宏,我使用Userform输入所需的信息,但我似乎无法找到一条我需要简化它的信息。
我有一个名称为" ID1"的文本框列表通过" ID16"。我需要:
1)确认每个文本框都包含Something
2)如果该文本框确实包含Something,请将其内容写入我工作表的单元格中。
例子:前3个文本框是否包含数字,我需要在工作表的列表中转换这3个数字。如果它包含6个,8个或13个数字,则相同。
谢谢!
答案 0 :(得分:0)
您可以执行以下操作:
Dim txt As String
For i = 1 To 16
txt = Controls("ID" & i).Text
If txt <> vbNullString Then
' Whatever you want to do with (txt)
End If
Next i
祝你好运!
答案 1 :(得分:0)
这样的事情怎么样:
Dim i As Long
Dim ws As Worksheet
Dim frmControl As Control
Set ws = ThisWorkbook.Worksheets(1)
ws.Cells(1, 1).Value2 = "Name"
ws.Cells(1, 2).Value2 = "vbString"
ws.Cells(1, 3).Value2 = "TypeName"
ws.Cells(1, 4).Value2 = "Value"
i = 2
For Each frmControl In UserForm1.Controls
ws.Cells(i, 1).Value2 = frmControl.Name
ws.Cells(i, 2).Value2 = VarType(frmControl.Object) = vbString
ws.Cells(i, 3).Value2 = TypeName(frmControl.Object)
If TypeName(frmControl.Object) = "IMdcText" Then
Sheet1.Cells(i, 4).Value2 = frmControl.Text
Else
Sheet1.Cells(i, 4).Value2 = "not a text box"
End If
i = i + 1
Next frmControl
显然,这需要它更加冗长。然而,这只是为了您的理解,可以很容易地适应您的需求。