我有一个工作表(称为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次点击以选择单元格文本框)。