当其名称是变量的值时,更改复选框的值

时间:2016-04-21 12:46:32

标签: excel-vba vba excel

第一篇文章,所以我会尽力使它成为一个好的(请告诉我,如果我做错了)。我似乎无法正确编写代码来改变它使用变量的工作表上的复选框或选项按钮的值。

假设复选框名称的名称是" Chk1",通常我会写:

Worksheets("AP-1").Chk1.value=X

其中X是(真或假)。由于它是一个循环,我使用一个名为FoundRange的范围变量,它的值是复选框的名称,所以我尝试了:

dim chkname as string
chkname=foundrange.value
Worksheets("AP-1").Chkname.value=X

我也试过

Worksheets("AP-1").CheckBoxes(chkname).Value = X

Worsheets("AP-1").Shapes(chkname).ControlFormat.Value=X

我还有一个我用来更改值的链接单元格,但是当它在其中写入false或true时,复选框变为灰色,我需要在链接的单元格中按F2 + Enter以创建复选框显示正确的价值。我还尝试在更改其值后选择链接的单元格并使用该代码:

Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"

但它不起作用。 请帮帮我:)。

1 个答案:

答案 0 :(得分:0)

根据您的初始代码,它必须是ActiveX控件,而不是Form 1,所以:

dim chkname as string
chkname=foundrange.value
Worksheets("AP-1").OLEObjects(Chkname).Object.value = X