用 VBA 实现鼠标点击输入数据

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(1)

本文分享内容:用VBA代码实现鼠标点击输入数据。主要分享ActiveWindow.RangeSelection 在VBA中的运用

实现功能:当鼠标点击指定区域时,指定输入框自动获取鼠标点击的单元格内容,从而实现用鼠标进行数据的快速输入。

本文最后会附教程下载地址和代码解释。

1、清除按钮的制作:

1.1如下图,点击开发工具,在表格中制作一个按钮。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(2)

1.2 弹出的对话框点击取消

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(3)

1.3 选择按钮,更改名字为“清除”。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(4)

1.4 点击开发工具—Visual Basic 打开VBA窗口。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(5)

1.5 鼠标右击空白处,插入模块

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(6)

1.6 在模块内输入代码。Range("D6:I6")表示要清空D6到I6单元格的数据。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(7)

1.7 选择按钮,右键选择“指定宏”

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(8)

1.8 选择“清除”后确定,清除按钮制作完毕。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(9)

2 鼠标点击事件

2.1 鼠标右键点击该工作表,选择查看代码。

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(10)

2.2 然后按下图所示选择“worksheet”和“selectionchange”

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(11)

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(12)

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

excel vba中鼠标移动顺序(EXCEL中用VBA实现鼠标点击输入数据)(13)

教程下载地址:https:///s/1a7L64MgSWcvx167eYRZf0w?pwd=oi78

提取码:oi78

有喜欢本文的可点赞、转发、评论支持哦。希望大家多多支持!

,