[英]Setting cell formula which includes “text constants” in Excel cell by VBA
[英]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")
函數將為您提供單元格的地址字符串。 因此,為了將該字符串放入COLUMN
或ROW
函數,您還需要 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.