我不确定如何问这个问题,而且我对这个社区还比较陌生。
我试图获取按钮的位置,该按钮具有我的代码,并且可以正常工作。
如何从另一个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
答案 0 :(得分:1)
有两种方法可以在VBA中传递变量。
您可以在函数外部使用公共变量,该公共变量的作用域将在其子函数之外,也可以使用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