使用 VBA(Excel 365(16.0.12527.20880),德语)我试图根据Office VBA 参考将复选框 ( Checkbox1) 标题的删除线属性设置为这应该有效。False
下面的代码被放置在一个Module1(简化的),并且改变的透湿值UserForm1.Checkbox1(UserForm1和Checkbox1运行时期间是静态的,创建经由所述VBA的编辑器,而不是通过代码)。
Sub ChangeCheckBox()
UserForm1.CheckBox1.Caption = "Test" 'this triggers the Init-Procedure, which only sets the Height and Width of the UserForm. This shouldn't effect the problem, but I'm mentioning it here so it's clear that the form has been initialized. But if I leave it out, it's the same problem.
'Pre-Test - works fine
'Check initial value
Debug.Print UserForm1.CheckBox1.Font.Strikethrough 'returns false …Run Code Online (Sandbox Code Playgroud) 我遇到了一些布尔变量的怪异行为;下面的代码同时打印“ Hello”和“ There”,意思是result&NOT result都计算为True
Dim result As Boolean
result = PostMessage(Application.hWnd, 275, 0, 0)
Debug.Print "Post message: "; result
If result Then Debug.Print "Hello"
If Not result Then Debug.Print "There"
Run Code Online (Sandbox Code Playgroud)
产出
Post message: True
Hello
There
Run Code Online (Sandbox Code Playgroud)
根据文档,PostMessage的声明如下:
Dim result As Boolean
result = PostMessage(Application.hWnd, 275, 0, 0)
Debug.Print "Post message: "; result
If result Then Debug.Print "Hello"
If Not result Then Debug.Print "There"
Run Code Online (Sandbox Code Playgroud)
带有评论:
如果函数成功,则返回值为非零。
这是我在VBA中的方法:
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" …Run Code Online (Sandbox Code Playgroud)