遍历TextBox并获取TextBox编号

时间:2019-04-27 08:55:12

标签: excel vba for-loop

我有7个文本框,对应于7个没有用户窗体的标签。 1.我需要遍历每个文本框并找到空/空白文本框 2.显示相应标签的消息框。标题不能为空  3.找到文本框编号以将焦点放在空白文本框上

Dim x As Integer
For x = 1 To 7
'Find the empty/blank TextBox
If ActiveSheet.OLEObjects("TextBox" & x).Object.Text = "" Then
'Display Message
MsgBox ActiveSheet.OLEObjects("Label" & x).Object.Caption & " cannot be empty"
'Find the empty/blank Texbox number to set focus.This is where I am stuck 
TextBox(Number?).Activate
Exit Sub
End If
Next x

1 个答案:

答案 0 :(得分:0)

您可以这样做:

Dim x As Integer
Dim emptyTextboxIndex As Long
For x = 1 To 7
    If ActiveSheet.OLEObjects("TextBox" & x).Object.Text = "" Then
        MsgBox ActiveSheet.OLEObjects("Label" & x).Object.Caption & " cannot be empty"
        emptyTextboxIndex = ActiveSheet.OLEObjects("TextBox" & x).Index
        ActiveSheet.OLEObjects(emptyTextboxIndex).Activate
        Exit Sub
    End If
Next x

顺便说一句,如果我是你,我将避免使用ActiveSheet,而是使用对工作表的显式引用。我也将避免使用Exit Sub