【问题标题】:VBA - 128Bit value to 128 checkboxesVBA - 128位值到128个复选框
【发布时间】:2021-04-13 06:42:04
【问题描述】:

我需要一些帮助,如何将一些数据从 Pythonscript 传输到我的 VBA 程序中。 我有一个带有 128 个开关的系统,可以打开或关闭(1 或 0)。在我的 Python 脚本中,我读取了各个开关的值,现在我想将该数据发送回我的 VBA 程序,其中有 128 个复选框代表这些开关。

我目前的进展是在 python 中对这 128 个数字进行位移,然后使用该 128 位整数打印回 VBA。 现在我在 python 中使用“print”,并在 VBA 中检查 shell 中的打印 - 然后我将该数据读出到一个字符串中。

现在我的字符串将具有我的开关的 ASCII 值(等 170141183460469231733416685972794376193)

如何将此 ASCII 字符串转换为有用的内容以单击这些复选框? 我打算使用一个循环,然后运行 ​​128 次

Controls("CheckBox" & Counter).value = BINARYVALUE[Counter]

其中counter是循环计数器,BINARYVALUE是存储128bit二进制值的地方

感谢您的帮助!

【问题讨论】:

    标签: python excel vba type-conversion 128-bit


    【解决方案1】:

    构建和传递这些位的字符串可能更简单,例如:

    Switches = "11111111111111111111101111100000011111111000000000011111111100000011111111111111111111010101111111111111111110000001111111111111"
    

    然后你可以循环这个:

    Me.Controls("CheckBox" & Counter).Value = CBool(Mid(Switches, Counter, 1))
    

    【讨论】:

    • 此解决方案值得注意的是,由于“mid”只能从 1 开始,因此 Counter 的索引为 1。
    猜你喜欢
    • 2015-08-27
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2014-07-31
    • 2010-12-31
    • 2017-10-16
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多