excel - 将按钮的位置传递给调用子
问题描述
我不知道如何问这个问题,而且我对社区还比较陌生。
我试图获得一个按钮的位置,我有代码,它可以工作。
如何从另一个 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 中有两种传递变量的方法。
您可以在函数之外使用公共变量,它的作用域在它们的 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
推荐阅读
- html - 部分全宽 Youtube 视频背景
- c++ - 逆透视映射 OpenCV C++
- android - 仅具有 BLE 权限的 Google NearbyMessages API 正在请求麦克风权限
- php - 如何强制 Excel 文件在浏览器中打开而不是下载
- python - 如何在 Python 中有效地切换函数?
- google-cloud-platform - Google Cloud - Speech to Text 用户配额
- lua - 创建一个组合列表?Lua/伪代码
- jquery - 如何使用jquery美化html标签
- c - 在不同迭代中执行任务的计数器循环
- php - org.json.JSONException:java.lang.String 类型的值连接无法转换为 JSONArray