vba 回车触发事件
建立了一个窗体,然后里面有一个文本框。设定文本框等于一个数值时触发一系列的事件。现在的问题是,无法输入10以上的数字,因为输入一个个位数就会直接触发后面的事件。我在下面加...
建立了一个窗体,然后里面有一个文本框。
设定文本框等于一个数值时触发一系列的事件。现在的问题是,无法输入10以上的数字,因为输入一个个位数就会直接触发后面的事件。
我在下面加了一个确定按钮,可是不知道怎么实现在点击确定或者回车才触发事件的效果。
我刚开始用vba,多多帮忙了啊!!
谢谢!!
3楼 谢谢你的回答 可是我这个还是有点问题 我给你程序 你看下 回答了170都是你的 谢谢了!!!
Option Explicit
Private Sub Label1_Click()
End Sub
Private Sub 取消_Click()
Me.Hide
End Sub
Private Sub UserForm_Activate()
End Sub
Private Sub 确认_Click()
Call TextBox1_Change
Me.Hide
End Sub
Private Sub TextBox1_Change()
Dim i As Integer
For i = 1 To 100
If TextBox1.Text = Worksheets("数据").Cells(1, i) Then
Worksheets("数据").Select
Worksheets("数据").Cells(4, i - 1).Select
Sheets("图表").Select
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection(1).Name = Worksheets("数据").Cells(3, i)
ActiveChart.SeriesCollection(1).Values = Range(Worksheets("数据").Cells(4, i), Worksheets("数据").Cells(5000, i))
ActiveChart.SeriesCollection(1).XValues = Range(Worksheets("数据").Cells(4, i - 1), Worksheets("数据").Cells(5000, i - 1))
End If
Next
Me.Hide
Sheets("图表").Activate
End Sub 展开
设定文本框等于一个数值时触发一系列的事件。现在的问题是,无法输入10以上的数字,因为输入一个个位数就会直接触发后面的事件。
我在下面加了一个确定按钮,可是不知道怎么实现在点击确定或者回车才触发事件的效果。
我刚开始用vba,多多帮忙了啊!!
谢谢!!
3楼 谢谢你的回答 可是我这个还是有点问题 我给你程序 你看下 回答了170都是你的 谢谢了!!!
Option Explicit
Private Sub Label1_Click()
End Sub
Private Sub 取消_Click()
Me.Hide
End Sub
Private Sub UserForm_Activate()
End Sub
Private Sub 确认_Click()
Call TextBox1_Change
Me.Hide
End Sub
Private Sub TextBox1_Change()
Dim i As Integer
For i = 1 To 100
If TextBox1.Text = Worksheets("数据").Cells(1, i) Then
Worksheets("数据").Select
Worksheets("数据").Cells(4, i - 1).Select
Sheets("图表").Select
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection(1).Name = Worksheets("数据").Cells(3, i)
ActiveChart.SeriesCollection(1).Values = Range(Worksheets("数据").Cells(4, i), Worksheets("数据").Cells(5000, i))
ActiveChart.SeriesCollection(1).XValues = Range(Worksheets("数据").Cells(4, i - 1), Worksheets("数据").Cells(5000, i - 1))
End If
Next
Me.Hide
Sheets("图表").Activate
End Sub 展开
4个回答
展开全部
可以使用Call函数调用你原来由文本框所定义的过程:
可以这样写:
Sub 按钮1_单击()
call TXT_change()
End Sub
这个TXT_change()的SUB就是你由文本框所定义的过程
' 调用一个子过程。
Call PrintToDebugWindow("Hello World")
' 上面的语句将控制转移到下面的子过程。
Sub PrintToDebugWindow(AnyString)
Debug.Print AnyString ' 在“立即”窗口中显示。
End Sub
可以这样写:
Sub 按钮1_单击()
call TXT_change()
End Sub
这个TXT_change()的SUB就是你由文本框所定义的过程
' 调用一个子过程。
Call PrintToDebugWindow("Hello World")
' 上面的语句将控制转移到下面的子过程。
Sub PrintToDebugWindow(AnyString)
Debug.Print AnyString ' 在“立即”窗口中显示。
End Sub
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.MoveAfterReturn = xlDown Then
If Target.Row = 3 And Target.Column = 1 Then
Cells(Target.Row - 1, 2) = "A"
End If
End If
End Sub
因为这个事件的target参数指的现在所选择的位置,而你是要得到上个单元格的位置,所以变通一下,如果现在选择的是A3,说明上一个单元格是A2.
If Application.MoveAfterReturn = xlDown Then
If Target.Row = 3 And Target.Column = 1 Then
Cells(Target.Row - 1, 2) = "A"
End If
End If
End Sub
因为这个事件的target参数指的现在所选择的位置,而你是要得到上个单元格的位置,所以变通一下,如果现在选择的是A3,说明上一个单元格是A2.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.MoveAfterReturn = xlDown Then
If Target.Row = 3 And Target.Column = 1 Then
Cells(Target.Row - 1, 2) = "A"
End If
End If
End Sub
因为这个事件的target参数指的现在所选择的位置,而你是要得到上个单元格的位置,所以变通一下,如果现在选择的是A3,说明上一个单元格是A2.
这里还可以进一步细化,判断Application.MoveAfterReturn 属性,将每一种情况都考虑进去。
If Application.MoveAfterReturn = xlDown Then
If Target.Row = 3 And Target.Column = 1 Then
Cells(Target.Row - 1, 2) = "A"
End If
End If
End Sub
因为这个事件的target参数指的现在所选择的位置,而你是要得到上个单元格的位置,所以变通一下,如果现在选择的是A3,说明上一个单元格是A2.
这里还可以进一步细化,判断Application.MoveAfterReturn 属性,将每一种情况都考虑进去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用textbox的exit事件
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "enter OK"
End Sub
这个可以很好的按你的要求回车触发的。前提是,你的窗体中至少有二个控件,否则无法实现。
Private Sub TextBox1_AfterUpdate()
MsgBox "TextBox1_AfterUpdate OK"
End Sub
用TextBox1_AfterUpdate事件也可实现你想要的功能的。
用确定按键可以下面的事件中加代码
Private Sub CommandButton1_Click()
MsgBox "CommandButton1_Click OK"
End Sub
要想真正实现enter回车功能的话,我在VBA中没有做过,但是在VB中做过,这个就有点和难了,VBA不一定有这个功能的。
编程不一定一定要用想用的事件,能实现相当的功能就行了。如是是想真那个功能则另当别论了
有机会到我主页看看,那上面有程序介绍的,不可以下载使用。
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "enter OK"
End Sub
这个可以很好的按你的要求回车触发的。前提是,你的窗体中至少有二个控件,否则无法实现。
Private Sub TextBox1_AfterUpdate()
MsgBox "TextBox1_AfterUpdate OK"
End Sub
用TextBox1_AfterUpdate事件也可实现你想要的功能的。
用确定按键可以下面的事件中加代码
Private Sub CommandButton1_Click()
MsgBox "CommandButton1_Click OK"
End Sub
要想真正实现enter回车功能的话,我在VBA中没有做过,但是在VB中做过,这个就有点和难了,VBA不一定有这个功能的。
编程不一定一定要用想用的事件,能实现相当的功能就行了。如是是想真那个功能则另当别论了
有机会到我主页看看,那上面有程序介绍的,不可以下载使用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询