将按钮的位置传递给呼叫子

  • 本文关键字:呼叫 按钮 位置 excel vba
  • 更新时间 :
  • 英文 :


>我不知道如何问这个问题,我对社区相对较新。

我正在尝试获取按钮的位置,我有该按钮的代码,并且它可以工作。

如何从另一个 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

最新更新