在失去对activex控件的关注后重新关注单元格

时间:2015-05-21 14:34:03

标签: excel vba excel-vba hyperlink

我有一个工作表(称为Control),其中包含一系列单元格,每个单元格都覆盖一个形状:

Set shp = Sheet1.Shapes.AddShape(msoShapeFlowchartTerminator, cl.Left + 2, cl.Top + 1.5, 52, 12)

然后添加到形状的超链接以允许屏幕提示:

Sheet1.Hyperlinks.Add Anchor:=shp, _
    Address:="", _
    SubAddress:="'Control'!" & cl.Address, _
    ScreenTip:=shp.name, _
    TextToDisplay:=" "

这可以防止形状不起作用,而是在SubAddress中的对象上触发工作表SelectionChange事件。

在工作表上还有一组activex控件来修改代码的行为。一个这样的控件是一个复选框,正如预期的那样,当我单击复选框时,工作表的其余部分失去焦点(工具栏项目变灰并且单元格边框不存在)。当我下一次单击一个单元格(形状)时,工具栏项目将恢复为颜色,但我必须再次单击该单元格以选择它。 我已经尝试在每次单击activex控件后重新激活先前选择的单元格,如下所示:

Private Sub checkbox1_Click()
    previousTarget.Application.ActiveCell.Activate
End Sub

,这很好 - 我可以点击任何单元格,它将被选中。但是,我也有一个activex文本框控件,在这种情况下相同的技术将不起作用,因为文本框需要保持焦点,直到单击另一个项目。

我已经确定如果不使用超链接,所有这些都有效,所以只是想知道是否有任何解决方案,或者我不得不放弃我的工具提示(或者在输入文本后接受2次点击以选择单元格文本框)。

0 个答案:

没有答案