Vba 选中复选框时使单元格处于活动状态

Vba 选中复选框时使单元格处于活动状态,vba,excel,Vba,Excel,我在Excel电子表格的单元格中有一个复选框。我正在编写一个宏,使用Activecell.Offset函数将文本放置在某些单元格中,如下所示: Activecell.Offset(3,1).Value = "Needed" 但是,为了使这项工作符合要求,我需要在选中复选框时使包含复选框的单元格成为活动单元格。如何执行此操作?这适用于窗体控件复选框对象 确保您的复选框索引和ActiveSheet.checkbox(1) 都是一样的 Sub Checkbox1_Click() Dim chkBo

我在Excel电子表格的单元格中有一个复选框。我正在编写一个宏,使用
Activecell.Offset
函数将文本放置在某些单元格中,如下所示:

Activecell.Offset(3,1).Value = "Needed"

但是,为了使这项工作符合要求,我需要在选中复选框时使包含复选框的单元格成为活动单元格。如何执行此操作?

这适用于窗体控件复选框对象
确保您的复选框索引和
ActiveSheet.checkbox(1)
都是一样的

Sub Checkbox1_Click()
 Dim chkBox As CheckBox
 Set chkBox = ActiveSheet.CheckBoxes(1)
 Range(chkBox.LinkedCell).Offset(3, 1).Value="Needed"
End Sub
您还可以根据
LinkedCell
中的值,使用所需的-
进行填充

如果您的复选框是ActiveX控件。您可以对其执行类似的操作方法


已编辑以显示更多详细信息

复选框表单控件的工作流如下:-
1.右键单击复选框->格式控制

2.单元格链接,这通常是复选框后面的单元格,您需要锚定(您可以将字体颜色设置为白色,这样它就不会显示值)

3.右键单击复选框->分配宏

4.单击“新建”

5.它显示为您创建以下代码段

Sub CheckBox2_Click()

End Sub
六,。用我之前向您展示的代码填写子项。

Sub Checkbox2_Click()
 Dim chkBox As CheckBox
 Set chkBox = ActiveSheet.CheckBoxes(2)
 Range(chkBox.LinkedCell).Offset(3, 1).Value="Needed"
End Sub

您可以在单击复选框时尝试此操作,但它可能无法正常工作,因为一旦单击复选框,复选框将成为焦点:
ActiveCell=Range(CheckBox1.TopLeftCell.Address)
选择
。为什么只想设置公式1c1的值
Activecell.Offset(3,1).Value=“Needed”
复选框是ActiveX控件还是窗体控件?@Mat'sMug它是窗体控件。更改如何插入该值的详细信息并不能真正解决我的问题。我仍然需要将复选框设为活动单元格,以便偏移量将指向正确的单元格。这并不能真正解决这个问题,但看看本网站上涉及运行时错误的一千多个问题中的任何一个,这些问题都是由
选择
激活
引起的,我强烈建议您“更改如何插入该值的措辞“就这么说吧,你是怎么让它开火的?我创建了一个表单复选框,单击它并取消其链接没有任何作用。不幸的是,您必须为每个已选中的复选框执行一次。@bulbus因此,如果我理解正确,我必须为电子表格中的每个复选框指定一个索引值,以使其正常工作?当您右键单击复选框上的“分配宏”时,它将自动显示子名称,如
复选框2\u单击
复选框3\u单击
复选框4\u单击
。。。在行集合
chkBox=ActiveSheet中使用相同的数字/索引。复选框(1)
我已经用您应该遵循的工作流程更新了答案。看看是否有帮助!