检查文本框是否包含vba Userform中的信息(看起来并不简单......)

时间:2016-08-18 19:33:39

标签: excel vba excel-vba

我有一个用于在工作时打印标签的宏,我使用Userform输入所需的信息,但我似乎无法找到一条我需要简化它的信息。

我有一个名称为" ID1"的文本框列表通过" ID16"。我需要:

1)确认每个文本框都包含Something

2)如果该文本框确实包含Something,请将其内容写入我工作表的单元格中。

例子:前3个文本框是否包含数字,我需要在工作表的列表中转换这3个数字。如果它包含6个,8个或13个数字,则相同。

谢谢!

2 个答案:

答案 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

显然,这需要它更加冗长。然而,这只是为了您的理解,可以很容易地适应您的需求。