MSFlexGrid结合textbox做了一个可编辑的MSFlexGrid,如何判断上一个cell中的数字是否合法?如题,当我点击下
MSFlexGrid结合textbox做了一个可编辑的MSFlexGrid,如何判断上一个cell中的数字是否合法?
如题,当我点击下一个cell准备输入数字时,怎么判断刚才输入的哪个是否在范围内。
- VB code
Private Sub MSFlexGrid1_LeaveCell()Dim ts As Singlets = Val(MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col))If MSFlexGrid1.Row = 2 Then If ts <= 0 Or ts > 3600 Then MsgBox "范围:0 - 3600 秒", vbExclamation, "注意" End IfElse If MSFlexGrid1.Row = 3 Then If ts < 190 Or ts > 700 Then MsgBox "范围:190 - 700nm", vbExclamation, "注意" End IfEnd IfEnd IfEnd Sub
我这样写 但是不行。
[解决办法]
你这个有啥问题? 后面要加exit sub...
MsgBox "范围:0 - 3600 秒", vbExclamation, "注意"
exit sub
[解决办法]
这个判断提醒应在你给单元格赋值之前检查
[解决办法]
找到之前写的一个,是编辑完后按enter确认的. 你参考下
(如果不用enter确认,在文本框的lostfocus事件中判断吧,不过不推荐)
- VB code
Private Sub MSFlexGrid1_Click() With MSFlexGrid1 Text1.Visible = True Text1.Move .ColPos(.Col), .RowPos(.Row), .ColWidth(.Col), .RowHeight(.Row) Text1.BackColor = &HC0FFC0 Text1.Text = "" If .TextMatrix(.Row, .Col) = "" Then Text1.Text = "" Else Text1.Text = .TextMatrix(.Row, .Col) End If Text1.SelLength = Len(Text1.Text) Text1.SetFocus End WithEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <> 13 Then Exit Sub If Text1.BackColor = &HC0FFC0 Then Text1.Visible = False MSFlexGrid1.SetFocus '数据是否合法,这里判断 '……略 MSFlexGrid1.Text = Text1.Text End IfEnd Sub
[解决办法]
我这里有个代码,求各位高手解决
- VB code
Private Sub Command1_Click()Set objVoice = CreateObject("SAPI.SpVoice")s = Text1.Text If s = "" Then Exit Sub ElseIf s = " " Then n = Replace(board, Chr(10), "。。") objVoice.Speak n Else objVoice.Speak s End IfEnd Sub
[解决办法]
[解决办法]
事件validate里判断
