[英]Clicking a Hyperlink in Excel Clears a Range Selection Before Running Macro
我正在從放置在工作表單元格中的超鏈接運行宏。 該宏要求用戶 select 下表中的一些單元格,然后將其轉移到工作表上的另一個位置。 問題是單擊超鏈接將清除用戶的選擇,而不是 select 超鏈接的單元格。
我想做的:讓用戶 select 單元格,單擊超鏈接並能夠通過宏引用選擇范圍。
備選方案 1 :我之前實現過但必須刪除它:創建一個鏈接到宏的形狀,因此用戶在單擊形狀時不會清除選擇...
這樣做的問題是工作表是自動生成的並且非常復雜。 當用戶操作位於形狀上方的行和表格時,我無法在工作表中維護形狀的 position。 因此,該形狀要么變形,要么失去其位置並進入外太空(或出現在其他桌子的中間)。 即使像這樣固定形狀位置也會發生這種情況:
Set sh = ws.Shapes.AddShape(msoShapeRoundedRectangle, l, t, w, h) 'Non-KtCpl
With sh
sh.ShapeStyle = msoShapeStylePreset40
sh.OnAction = "'macroName """ & ws.name & """, ""shapeName""'"
sh.Placement = 1
End With
position 沒有得到維護。
備選方案 2 :用戶在單擊超鏈接后使用多選輸入選擇范圍,即:
Application.InputBox("Please select the range from the sheet", Title:="Select Range", Type:=8)
備選方案 2 可行,但我真的很想知道我原來的問題是否可行。
謝謝!
我真的很想知道我最初的問題是否可能。
邏輯:
代碼:
這是你正在嘗試的嗎? 我假設超鏈接在A1
中。 根據需要進行更改。
Option Explicit
Dim rng As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Set rng = Target
End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If rng Is Nothing Then
MsgBox "Select relevant cells"
Exit Sub
End If
If Not Intersect(Target.Range, Range("A1")) Is Nothing Then
MsgBox "The range selected is " & rng.Address '<~~ Do what you want here
End If
End Sub
在行動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.