我使用雙擊事件。 VBA代碼放在工作表中,因此它在本地工作表中。
在工作表具有的事件處理程序,像這樣:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Put your code here
'The Target parameter will tell you which cell was double clicked.
'Target.Row will be the 1 based row number.
'Target.Column will be the 1 based column number.
'Target.Address will give you the cell address in "A1" format
'The Cancel parameter is a return value.
'If you set it to true, Excel will "cancel" or ignore the double click.
End Sub
作爲一個例子我有確實文件seraches的片材。單元格A1被輸入用於文件搜索。單元格B1是要在文件中查找的文本的輸入。第2行只是標籤,但我使用它們對發現的數據進行排序。雙擊A2或B2從第3行開始排序。每次雙擊第2行的單元格時,排序順序都會反轉。因此,第一次雙擊A2按升序排列文件名,第二次雙擊A2按文件名降序排列。 B2和路徑一樣。
第3行及以下行接收到搜索結果。列A接收文件名稱。列B接收文件的路徑。雙擊A列中的文件名將會打開文件,如果它有關聯的程序。雙擊B列中的路徑將打開該文件夾中的Windows資源管理器。
如果Target參數指示雙擊一個空單元格,我將Cancel設置爲True並退出,導致不採取任何操作。
它給你比請求更多的粒度,但這只是一個例子。聽起來你只需要這一行。
使用右鍵快捷菜單,然後添加指向兩個子程序(
GetFields
和
GetTables
)
當我不得不做類似的事情時,我向用戶提供了兩個選項。 (1)我爲單元格的右鍵單擊菜單添加了一個附加選項,該選項稱爲我的子例程(2)我在工作表中添加了一個按鈕,該按鈕稱爲我的子例程。顯然,該子程序然後使用「ActiveCell」對象來確定表的哪一行被引用。 – YowE3K
@ YowE3K哦,我不知道你可以在右鍵菜單中添加新的選項,聽起來很完美 – Mojimi