gpt4 book ai didi

excel - 使用复选框通过 Onaction 传递参数

转载 作者:行者123 更新时间:2023-12-04 22:31:01 26 4
gpt4 key购买 nike

所以我已经有一段时间了,我已经搜索了很多网站和论坛,但是我找不到解决我的问题的方法。

我正在尝试向 .OnAction 添加参数Checkbox 的事件

所以..例如

Dim chk as Checkbox
With chk
.name = "chk" & .TopLeftCell.Offset(0, -7).Text
.Caption = ""
.Left = cel.Left + (cel.Width / 2 - chk.Width / 2) + 7
.Top = cel.Top + (cel.Height / 2 - chk.Height / 2)
.OnAction = "CheckboxHandle(chk)"
End With

所以如果我试图调用这个子 -> Public Sub CheckboxHandle(obj As CheckBox)
它需要一个 CheckBox Object能够运行(如有必要,可以更改为形状/对象)

我尝试过的事情

将数据类型更改为对象和形状但是我找不到通过它的方法

以下陈述的变体
"""CheckboxHandle(chk)""" "'CheckboxHandle" ""chk"" '" Application.caller然后循环 objects找到 object用那个名字(这需要太长时间,因为我有超过 300 个复选框)

背景

如果上下文有帮助,我会尝试为范围内的每个单元格添加一个复选框,然后让每个单元格在单击它们时调用相同的方法。我需要 OnAction发送 Object当我寻找 TopleftCellObject更改相邻单元格的颜色

如果有帮助
这是我想从 OnAction 调用的方法事件
Public Sub CheckboxHandle(obj As CheckBox)
Dim rng As Range
'Sneaky sneaky changes
Application.ScreenUpdating = False


'For Loop to go through each of the cells to the left of the check box
For Each rng In Range(obj.TopLeftCell, obj.TopLeftCell.Offset(0, -7))
With rng
'if the checkbox is checked
If obj.Value = -1 Then
.Interior.Color = RGB(202, 226, 188)
'Adds the date and the person so you know who did the edit
obj.TopLeftCell.Offset(0, 1).Value = Now & " by " & Application.username
Else
'if it isn't checked
.Interior.Pattern = xlNone
'removes the edit name and date
obj.TopLeftCell.Offset(0, 1).Value = ""
End If
End With
Next rng
'Shows all the changes at the same time
Application.ScreenUpdating = True

'Changes the value of the progress bar to represent the project completion
If obj.Value = -1 Then
ActiveSheet.Range("E1").Value = ActiveSheet.Range("E1").Value + 1 / 207
Else
ActiveSheet.Range("E1").Value = ActiveSheet.Range("E1").Value - 1 / 207
End If
End Sub

对此问题的任何帮助将不胜感激

-Sebic0

最佳答案

我认为您不能通过 OnAction 传递对象. OnAction -property 是一个包含 Sub 名称的字符串(加参数)。

您可以尝试传递复选框的名称。请注意,您必须将复选框的名称用双引号引起来,这样您就会得到类似的东西。 CheckboxHandle "chk123" :

 .OnAction = "'CheckboxHandle """ & .Name & """'"

并改变你的 Action 例程
Public Sub CheckboxHandle(chbBoxName as string)
dim chk as CheckBox
Set chk = ActiveSheet.CheckBoxes(chkBoxName)
(...)

关于excel - 使用复选框通过 Onaction 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com