用 VBA 实现鼠标点击输入数据
本文分享内容:用VBA代码实现鼠标点击输入数据。主要分享ActiveWindow.RangeSelection 在VBA中的运用
实现功能:当鼠标点击指定区域时,指定输入框自动获取鼠标点击的单元格内容,从而实现用鼠标进行数据的快速输入。
本文最后会附教程下载地址和代码解释。
1、清除按钮的制作:
1.1如下图,点击开发工具,在表格中制作一个按钮。
1.2 弹出的对话框点击取消
1.3 选择按钮,更改名字为“清除”。
1.4 点击开发工具—Visual Basic 打开VBA窗口。
1.5 鼠标右击空白处,插入模块
1.6 在模块内输入代码。Range("D6:I6")表示要清空D6到I6单元格的数据。
1.7 选择按钮,右键选择“指定宏”
1.8 选择“清除”后确定,清除按钮制作完毕。
2 鼠标点击事件
2.1 鼠标右键点击该工作表,选择查看代码。
2.2 然后按下图所示选择“worksheet”和“selectionchange”
2.3 代码输入:然后输入如下代码。(括号内为代码解释)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
i = ActiveWindow.RangeSelection.Row(获取鼠标点击的行号)
k = ActiveWindow.RangeSelection.Colum(获取鼠标点击的列号)n
If i >= 8 And i <= 12 And k >= 4 And k <= 9 Then (锁定鼠标点击区域。鼠标在单元格8至12行,4至9列内点击)
If Sheet1.Range("d6") = "" Then (当第一个输入框是空值时,将鼠标点击单元格的值赋值给输入框)
Sheet1.Range("d6") = ActiveWindow.RangeSelection
Exit Sub
End If
If Sheet1.Range("d6") <> "" And Sheet1.Range("E6") = "" Then(当第一个输入框不是空值,第二个输入框是空值时,将将鼠标点击单元格的值赋值给第二个输入框)
Sheet1.Range("E6") = ActiveWindow.RangeSelection
Exit Sub
End If
以下代码同上,依次判定输入框是否有内容,依次赋值。
If Sheet1.Range("d6") <> "" And Sheet1.Range("E6") <> "" And Sheet1.Range("F6") = "" Then
Sheet1.Range("F6") = ActiveWindow.RangeSelection
Exit Sub
End If
If Sheet1.Range("d6") <> "" And Sheet1.Range("E6") <> "" And Sheet1.Range("F6") <> "" And Sheet1.Range("g6") = "" Then
Sheet1.Range("g6") = ActiveWindow.RangeSelection
Exit Sub
End If
If Sheet1.Range("d6") <> "" And Sheet1.Range("E6") <> "" And Sheet1.Range("F6") <> "" And Sheet1.Range("g6") <> "" And Sheet1.Range("h6") = "" Then
Sheet1.Range("h6") = ActiveWindow.RangeSelection
Exit Sub
End If
If Sheet1.Range("d6") <> "" And Sheet1.Range("E6") <> "" And Sheet1.Range("F6") <> "" And Sheet1.Range("g6") <> "" And Sheet1.Range("h6") <> "" And Sheet1.Range("i6") = "" Then
Sheet1.Range("i6") = ActiveWindow.RangeSelection
Exit Sub
End If
End If
End Sub
教程下载地址:https:///s/1a7L64MgSWcvx167eYRZf0w?pwd=oi78
提取码:oi78
有喜欢本文的可点赞、转发、评论支持哦。希望大家多多支持!
,