>我不知道如何问这个问题,我对社区相对较新。
我正在尝试获取按钮的位置,我有该按钮的代码,并且它可以工作。
如何从另一个 Sub 调用下面的 Sub 并获取行位置的整数值?
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
有两种方法可以在 VBA 中传递变量。
您可以在函数之外使用 Public 变量,这些变量的作用域将超出其 sub,也可以使用 Function,该函数旨在返回输出。
请注意,全局公共变量具有某些安全隐患。
函数必须命名为要返回的变量 - 在本例中为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