excel - 需要 Excel VBA 布尔帮助
问题描述
我需要帮助。
我有一个函数
Function Function_EditableOn() As Boolean
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if Function_EditableOn = True Then
msgbox("Work")
End if
End Sub
我想从“Function_EditableOn”进行布尔下载,这样如果它等于 true,那么在 Private Sub Worksheet_SelectionChange 中,您将能够执行一些功能,例如,会出现一个铭文
解决方案
我对你的代码做了一些修改。
Function EditableOn() As Boolean
EditableOn = True
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If EditableOn = True Then
MsgBox "Work"
End if
End If
End Sub
将 Event 过程保存到任何工作表的代码模块。您可以将函数保存EditableOn
到同一模块或标准代码模块。
现在,当您单击将事件过程粘贴到其代码模块中的工作表的 A1 时,该Worksheet_SelectionChange
事件将发生并且该名称的过程将触发。实际上,该事件将在每次单击时发生,在工作表中的任何位置,并且该过程每次都会运行,但不会执行任何操作,因为 proc 将单击 ( Target
) 的地址与 A1 的地址进行比较,并跳过所有不做的事情不匹配。
由于您单击了 A1 ,因此满足标准并且事件过程将调用该函数EditableOn
。该功能什么也不做。也许将来你会让它从互联网上下载一些东西,True
只有在下载成功时才返回。目前,该函数只返回True
. 它不能返回任何其他东西(现在)。因此,事件过程将显示一个带有消息“工作”的 MsgBox。每次单击 A1 时都会发生这种情况,但您不能连续单击 A1 多次。选择介于两者之间的另一个单元格。
推荐阅读
- kendo-ui - 如何在列菜单中使剑道网格中的列不可删除
- asp.net-mvc - 如何在 URL 中嵌入 App ID 和 Channel ID (Agora.io)
- c - 制作我自己的游戏引擎:确定玩家行走的地形的功能
- r - expss 表中的条件格式
- stripe-payments - 使用支付宝的 Stripe 订阅支付
- sql - DAX:将库存分配给未结订单
- java - 带/不带baseObservable的android viewmodel
- scala - Scala / Joda - Joda DateTimeFormat 不适用
- c# - C# Concat 数组中的两个字符
- sql - 需要帮助以 2 个不同的条件从 1 个表中加入 2 个选择查询