我缺少一些基本概念,我不知道它们是什么。当我使用我的用户表单更新标签条时,我得到一个编译错误“无效使用属性”。我正在尝试触发Tab条带的更新,该条带响应输入到文本框中的有效整数。以下是我目前的代码。
我也不知道如何检查Tab索引中的计数,然后添加到计数帮助,这也将不胜感激。
我得到的另一个错误是当IsValid函数检查数字值时,它会在输入字符时询问调试。我是否错误地检查了输入?
下图显示了表单图层。其中Test1是一个Frame(在Userform页面上),TabStrip位于与文本框相同的框架内(在代码中引用为TStrip1)。
Function IsValid(numIn As Integer) As Boolean
IsValid = (numIn Like [1-15])
End Function
Private Sub TextBox11_Change()
Dim ValidNum As Integer
ValidNum = TextBox11
Call IsValid(ValidNum)
Dim x As Integer
x = TextBox11
Call TStrip1(x)
End Sub
Private Function TStrip1_(ByRef,ByVal TStrip1) As Integer
Dim x As Integer
Dim TabNum As Integer
TabNum = x
UserForm1.TStrip1.TabIndex.Add = TabNum
End Function
Private Sub TStrip1_Change()
End Sub
答案 0 :(得分:3)
'无效使用属性'错误是由以下原因引起的:
Private Function TStrip1_(ByRef,ByVal TStrip1) As Integer
您为参数指定了ByRef AND ByVal。将该行更改为:
Private Function TStrip1_(TStrip1) As Integer
应该删除该错误。
但是,我会像这样重写你的代码:Option Explicit 'always use option explicit (just do)
Private Function IsValid(numIn As Variant) As Boolean
Dim n As Long
n = Val(numIn) 'cast to long
'check if n is between 1 and 15:
If n > 0 And n < 16 Then
IsValid = True
Else
IsValid = False
End If
End Function
Private Sub TextBox1_Change()
Dim ValidNum As Long
If IsValid(Me.TextBox1.Value) Then
ValidNum = Val(Me.TextBox1.Value)
Else
Exit Sub
End If
Call AdjTabs(ValidNum)
End Sub
Private Sub AdjTabs(n As Long)
Dim i As Long
If Me.TabStrip1.Tabs.Count = n Then
Exit Sub
ElseIf Me.TabStrip1.Tabs.Count < n Then
For i = Me.TabStrip1.Tabs.Count To n - 1
Me.TabStrip1.Tabs.Add
Next i
Else
For i = Me.TabStrip1.Tabs.Count To n + 1 Step -1
Me.TabStrip1.Tabs.Remove (Me.TabStrip1.Tabs.Count - 1)
Next i
End If
End Sub
唯一剩下的就是更改选项卡名称,但现在由您决定。我相信你能搞清楚。