簡體   English   中英

是否有公式或 VBA 方法來確定 Excel 中突出顯示的單元格?

[英]Is there a formula or VBA method to determine which cell is highlighted in Excel?

我想編寫一個公式來獲取用戶單擊的單元格的行號和列號。 每次用戶單擊不同的單元格時,公式應自動更新以反映當前選定的單元格。 我猜這不能通過公式來完成 - 如果沒有,有沒有辦法在 VBA 中做到這一點?

對於公式和選擇更改方法之間的交叉:

首先創建一個名為Selection的 1 單元格命名范圍

在工作表代碼模塊中添加:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveWorkbook.Names("Selection").RefersTo = Target
End Sub

然后在單元格中添加一個公式,如:

=ADDRESS(ROW(Selection),COLUMN(Selection))

選擇更改將更新命名范圍的引用,然后由公式處理其余部分。 這種方法而不是簡單的選擇更改的優點是公式可以自由移動和復制,而無需修改選擇更改代碼。

使用公式最接近的解決方案是CELL函數:

行號

=ROW(INDIRECT(CELL("address")))

列號

=COLUMN(INDIRECT(CELL("address")))

=CELL("address")函數將為您提供單元格的地址字符串。 因此,為了將該字符串放入COLUMNROW函數,您還需要 INDIRECT 函數。

請注意,此公式將用戶對所選單元格進行更改計算。

這可以使用公式的,但使用 VBA 相對更容易和更快。 SelectionChange事件正是為此而設計的。

這是一個簡短的示例,它將顯示您單擊的單元格的消息框。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "You clicked cell: " & Target.Address
End Sub

您還可以使用它來調整公式:

Sheet1.Range("A1").Formula = "=5+" & Target.Value

在此示例中,如果您單擊的單元格包含“5”,則單元格 A1 將顯示“10”作為以下公式的結果:“=5+5”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM