VBA 按钮:font.bold = true 工作/bold = false 失败

问题描述 投票:0回答:2

VBA 表单上有一个按钮,我想在粗体和非粗体之间切换外观。

像这样加粗是没有问题的:

 cmd_WriteTable.Font.Bold = True

但是,当执行相反的操作(cmd_WriteTable.Font.Bold = False)时,什么也没有发生 - 标题仍然是粗体。 知道出了什么问题或如何绕过这个问题吗?

我正在使用 SOLIDWORKS VBA,但我希望它此时与 Excel VBA 相同

vba button solidworks
2个回答
1
投票

我最终通过将命令放入单独的函数中来实现。否则它在我的应用程序中不起作用。我测试了一下没有问题。

Function unBoldButton()
cmd_WriteTable.Font.Bold = False
End Function

0
投票

我正在使用Excel Pro Plus 2019,并且遇到了非常相似的问题。 如果您想跳过详细信息,我的成功解决方案位于本文末尾。

在用户窗体中,我有 16 个标签控件,每个控件都与一个标识文本框控件相关联。当用户选择文本框时,我想通过将关联标签的字体切换为粗体来突出显示所选内容。

我尝试通过以正常方式迭代表单中的所有控件(对于 me.controls 中的每个控件)。为了找到并关联正确的控件,我使用标签(例如“lbl”)和“nameNN”形式的控件名称;其中 NN 是数字。

我使用 textbox.enter 事件来触发控件扫描。

在扫描控件时,我将 control.forecolour 更改为 vbRed(匹配标签)和 vbBlack(所有不匹配标签),效果很好。但是,我想让高亮颜色独立。

当我使用 control.font.bold 属性执行此操作时,尽管设置为 TRUE 时会设置粗体,设置为 FALSE 时也会设置粗体。我对此进行了彻底而仔细的探索。结果是在第一次扫描时所有标签都锁定为粗体。使用 control.font.italic 属性代替会出现相同的问题。

尽管尝试了很多小时,我还是没有找到解释。不过,我找到了一个有效的解决方案。

我没有使用 control.font.bold,而是使用 control.font.weight 并将值设置为 800(超粗体)或 400(正常)。 奇怪的是,额外的粗体在视觉上效果更好,所以在痛苦之后,这是一个更好的解决方案。

我希望这对来到这里的人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.