Как сохранить адреса ActiveCell в массив Dynami c VBA в Excel? - PullRequest
0 голосов
/ 22 апреля 2020

Я использую ячейки в качестве «кнопок», связывая их с функцией VBA:

=HYPERLINK("#vba_function()", "jump_text")

Когда нажата «кнопка», я хочу, чтобы адрес ячейки был сохранен в некотором массиве clicked_cells, поэтому на него нельзя нажать снова. Псевдокод:

if ActiveCell.Address in clicked_cells then MsgBox("That cell already selected. Choose another.")

Как инициализировать такой массив и как его обновить в vba_function?

1 Ответ

0 голосов
/ 24 апреля 2020
Public clicked_cells As Scripting.Dictionary

Function vba_function()
    Dim addr
    If clicked_cells Is Nothing Then
        Set clicked_cells = New Scripting.Dictionary
    End If

    addr = Selection.Address

    If clicked_cells.Exists(addr) Then
        MsgBox "Already clicked that " & (Timer - clicked_cells(addr)) & " seconds ago"
    Else
        clicked_cells.Add addr, Timer
    End If
    Set vba_function = Selection
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...