For i = 2 To 46
显示为 时间: 的文本框是46之后的,我把For i = 2 To 46改成For i = 2 To 50的话,不管查询或者修改都会变成0,除非输入的是数字,麻烦帮我一下,不管输入任何内容都可以,谢
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim MYRANGE As Range
Dim i As Integer
L = Sheets("会员管理").Range("A65536").End(xlUp).Row
Set MYRANGE = Sheets("会员管理").Range(Sheets("会员管理").Cells(2, 1), Sheets("会员管理").Cells(L, 1)).Find(TextBox1.Value)
If Not MYRANGE Is Nothing Then
For i = 2 To 46
Me.Controls("TEXTBOX" & i) = Sheets("会员管理").Cells(MYRANGE.Row, i + 1)
Next i
CommandButton2.Visible = True
CommandButton1.Visible = True
Else
End If
X = 0
For i = 7 To 44
s = Controls("textbox" & i).Text
If Len(s) > 0 Then X = X + CDbl(s)
Next
TextBox6.Text = X
End Sub
Private Sub CommandButton2_Click() '修改
Dim MYRANGE As Range
Dim i As Integer
L = Sheets("会员管理").Range("A65536").End(xlUp).Row
Set MYRANGE = Sheets("会员管理").Range(Sheets("会员管理").Cells(2, 1), Sheets("会员管理").Cells(L, 1)).Find(TextBox1.Value)
If Not MYRANGE Is Nothing Then
For i = 7 To 46
Sheets("会员管理").Cells(MYRANGE.Row, i + 1) = Val(Me.Controls("TEXTBOX" & i))
Next i
CommandButton1.Visible = True
CommandButton2.Visible = True
End If
ActiveWorkbook.Save
L = Sheets("会员管理").Range("A65536").End(xlUp).Row
Set MYRANGE = Sheets("会员管理").Range(Sheets("会员管理").Cells(2, 1), Sheets("会员管理").Cells(L, 1)).Find(TextBox1.Value)
If Not MYRANGE Is Nothing Then
For i = 2 To 46
Me.Controls("TEXTBOX" & i) = Sheets("会员管理").Cells(MYRANGE.Row, i + 1)
Next i
CommandButton2.Visible = True
CommandButton1.Visible = True
Else
End If
X = 0
For i = 7 To 44
s = Controls("textbox" & i).Text
If Len(s) > 0 Then X = X + CDbl(s)
Next
TextBox6.Text = X
End Sub
Private Sub CommandButton3_Click()
Dim MYRANGE As Range
Dim i As Integer
L = Sheets("会员管理").Range("A65536").End(xlUp).Row
Set MYRANGE = Sheets("会员管理").Range(Sheets("会员管理").Cells(2, 1), Sheets("会员管理").Cells(L, 3)).Find(TextBox2.Value)
If Not MYRANGE Is Nothing Then
TextBox1.Text = Sheets("会员管理").Cells(MYRANGE.Row, 1)
For i = 2 To 46
Me.Controls("TEXTBOX" & i) = Sheets("会员管理").Cells(MYRANGE.Row, i + 1)
Next i
CommandButton2.Visible = True
CommandButton1.Visible = True
Else
End If
X = 0
For i = 7 To 44
s = Controls("textbox" & i).Text
If Len(s) > 0 Then X = X + CDbl(s)
Next
TextBox6.Text = X
End Sub
Private Sub CommandButton5_Click()
Dim MYRANGE As Range
Dim i As Integer
L = Sheets("会员管理").Range("A65536").End(xlUp).Row
Set MYRANGE = Sheets("会员管理").Range(Sheets("会员管理").Cells(2, 1), Sheets("会员管理").Cells(L, 4)).Find(TextBox3.Value)
If Not MYRANGE Is Nothing Then
TextBox1.Text = Sheets("会员管理").Cells(MYRANGE.Row, 1)
For i = 2 To 46
Me.Controls("TEXTBOX" & i) = Sheets("会员管理").Cells(MYRANGE.Row, i + 1)
Next i
CommandButton2.Visible = True
CommandButton1.Visible = True
Else
End If
X = 0
For i = 7 To 44
s = Controls("textbox" & i).Text
If Len(s) > 0 Then X = X + CDbl(s)
Next
TextBox6.Text = X
End Sub
你应该单独处理那几个文本框,改成:
For i = 47 To 50
Sheets("会员管理").Cells(MYRANGE.Row, i + 1) = Me.Controls("TEXTBOX" & i)
Next
若不需要“时间:”则那句改成
Sheets("会员管理").Cells(MYRANGE.Row, i + 1) = Split(Me.Controls("TEXTBOX" & i), ":")(1)