用 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
有喜歡本文的可點贊、轉發、評論支持哦。希望大家多多支持!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!