Передача позиции кнопки вызывающей субмарине - PullRequest
0 голосов
/ 25 июня 2018

Я не уверен, как задать этот вопрос, и я относительно новичок в сообществе.

Я пытаюсь получить позицию кнопки, для которой у меня есть код, и она работает.

Как я могу вызвать подпункт ниже из другого подпункта и получить целочисленное значение позиции строки?

Sub ButtonRow()
     ' Mainlineup Macro
    Dim b As Object, RowNumber As Integer
    Set b = ActiveSheet.Buttons(Application.Caller)
    With b.TopLeftCell
        RowNumber = .Row
    End With
    'MsgBox "Row Number " & RowNumber
End Sub

1 Ответ

0 голосов
/ 25 июня 2018

Существует два способа передачи переменных в VBA.

Вы можете использовать общедоступные переменные вне функции, которые будут иметь область видимости вне своей подпрограммы, или использовать функцию , который предназначен для возврата выходных данных.

Обратите внимание, что глобальные открытые переменные имеют определенные последствия для безопасности.

Функции должны быть названы в качестве переменных, которые вы намереваетесь возвращать - в данном случае Function RowNumber().Существуют ограничения на то, что вы можете делать с функциями - функции IIRC не могут изменять никакие свойства ячейки, листа или рабочей книги.

Sub WhatPosition()
    MsgBox RowNumber
End Sub

Public Function RowNumber() As Integer
    Dim b As Object
    Set b = ActiveSheet.Buttons(Application.Caller) 
    With b.TopLeftCell 
        RowNumber = .Row 
    End With 
End Function

или:

Public RowNumber As Integer

Sub WhatPosition()
    ButtonRow
    MsgBox RowNumber
End Sub

Sub ButtonRow() 
    Dim b As Object 
    Set b = ActiveSheet.Buttons(Application.Caller) 
    With b.TopLeftCell 
        RowNumber = .Row 
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...