gpt4 book ai didi

excel - 如何使 Excel ActiveX 标签在运行时透明...?

转载 作者:行者123 更新时间:2023-12-04 20:59:48 26 4
gpt4 key购买 nike

我想在 Excel 中的工作表上放置一个透明标签,以便我可以利用标签的 MouseMove 事件通过鼠标单击/拖动/等来“绘制单元格”(也就是更改它们的填充颜色等) . - 因为我不能在细胞本身上这样做。

现在一切正常,除了我不能在运行时使标签透明(也就是在 VBA 中)......而在设计模式下做完全相同的事情可以按预期工作。具体来说,我有代码(或多或少):

Dim MapLabel As OLEObject
On Error Resume Next
Sheet2.OLEObjects("MapLabel").Delete
Set MapLabel = Sheet2.OLEObjects.Add("Forms.Label.1")
MapLabel.name = "MapLabel"
MapLabel.Placement = xlMoveAndSize
MapLabel.Object.Caption = ""
' Problem line below
MapLabel.Object.BackStyle = fmBackStyleTransparent
' Problem line above
MapLabel.Left = Sheet2.cells(2, 6).Left
MapLabel.Top = Sheet2.cells(2, 6).Top
MapLabel.Width = Sheet2.cells(2,6).Width * 10
MapLabel.Height = Sheet2.cells(2,6).Height * 10

所以,换句话说,我首先删除名为“MapLabel”的标签,然后重新创建它(上面的代码进入一个“init”子)。除了标记的那一行之外的所有代码行都会产生所需的结果。有标记的 将标签的 BackStyle 属性设置为 fmBackStyleTransparent ...但它 实际上使标签透明。这是令人沮丧的,因为它是在设计时完美运行的相同方法!

您对此有解决方案吗?我通过将标签声明为 MsForms.Label 或 Control 来阅读有关解决类似问题的信息,但工作表对象没有这些属性,此外,与使用 MsForms 相比,可以使用 OLEObject 设置的标签属性要多得多.标签或控制。

最佳答案

在此行之后您需要做的所有事情:

MapLabel.Object.BackStyle = fmBackStyleTransparent



把这一行:

ActiveSheet.Shapes(MapLabel.Name).Fill.Transparency = 1



我希望我有所帮助。

附言如果您需要解释,我将编辑我的答案。

关于excel - 如何使 Excel ActiveX 标签在运行时透明...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685232/

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