excel输数字就会跳出设置单元格(只输入一个字符就自动跳到下一个单元格)

首页常识更新时间:2022-11-29 02:58:12

Excel单元格特定区域,只输入一个字符,就自动跳到下一个单元格,再输入下一个一个字符;这样做方便快捷,只是需要另存为*.xlsm启用宏的工作簿文件;

具体做法如下:

Office--Excel 调用VBA功能,选择文件---选项---自定义功能区,勾选开发工具,点击确定;回到Excel页面,选择开发工具---插入,在ActiveX控件中选择添加一个文本框,TextBox1 无需改名;再添加一个复选框CheckBox1,无需改名,添加复选框为的是,如果勾选,则只输入一个字符有效,不勾选则无效!添加控件后,鼠标右键选择属性,将文本框、复选框的属性做如下修改:

TextBox1.BackColor = &H00C0FFFF& '''' 浅黄色;

TextBox1.BorderStyle = 1-fmBorderStyleSingle ‘’‘ 取消 3-D模式;

CheckBox1.Caption = “金额数字区域,只输入一个字符。”;

Excel操作要求:

勾选“金额数字区域,只输入一个字符。”;再按二次【回车键】,开始输入数字字符,每个单元格只输入一个数字字符,即自动跳到下一个单元格;一组数字输入结束后,数字前自动添加人民币元的符号“¥”。不按回车会出错!

打开VBA编辑器,左侧区域选择 "Sheet1(Sheet1)",双击打开编辑输入 VBA 代码如下:

Dim Ti As Long

Dim xR As Long, xC As Long

Dim Fen As String

Dim tR As Long, tC As Long

'''''' ********************* ''''''

Private Sub CheckBox1_Click()

If CheckBox1.Value = 1 Then

TextBox1.Visible = True

ElseIf CheckBox1.Value = 0 Then

TextBox1.Visible = False

End If

End Sub

'''' 本方案特别适用于会计做账用;

Private Sub TextBox1_Change()

If Len(Me.TextBox1.Text) <> 1 Then Exit Sub '''' 输入一个字符就转到下一个单元格

Me.TextBox1.Activate

ActiveCell = Me.TextBox1.Text

’‘’‘ 添加人民币符号!

Fen = Sheets("Sheet1").Cells(3, xC).Text

Sheets("Sheet1").Range("AO1").Value = Fen

If Fen = "分" Then Sheets("Sheet1").Cells(tR, tC).Value = "¥"

Me.TextBox1.Text = ""

Me.TextBox1.Activate

ActiveCell.Activate

Application.SendKeys "~"

End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

'''' 多个字符输入完毕,按下回车键,自动完成一个字符占一个单元格;

If KeyCode = 13 Then '''' 按回车记录输入这组数字的开始位置。

Ti = 0

Sheets("Sheet1").Range("AM1").Value = xR

Sheets("Sheet1").Range("AN1").Value = xC

tR = xR

tC = xC

End If

If KeyCode = vbKeyReturn Then

Ti = Val(Ti) 1

Sheets("Sheet1").Cells(xR, xC Ti - 1).Select

Me.TextBox1.Text = ""

End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

xC = Target.Column

xR = Target.Row

If CheckBox1.Value = True Then

'''' 定义只输入一个字符的区域。

If Target.Row >= 4 And Target.Column >= 5 And Target.Column < 27 Or Target.Column > 27 And Target.Column < 40 Then '''' 输入一个字符就转到下一个单元格的范围。

With TextBox1

.Left = ActiveCell.Left

.Top = ActiveCell.Top

.Width = ActiveCell.Width

.Height = ActiveCell.Height

End With

'''' 文本框获得焦点,即时输入即可。

Me.TextBox1.Activate

Me.TextBox1.SelStart = 0

Me.TextBox1.SelLength = 1

End If

End If

End Sub

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.