【问题标题】:convert all T/F values from userform to numbers when populating cells填充单元格时将所有 T/F 值从用户窗体转换为数字
【发布时间】:2017-09-22 06:41:10
【问题描述】:

我的第一个用户表单到数据表模板即将完成,非常感谢大家!

但是我很困惑,当它们返回“True”和“False”值时,我将如何从用户窗体选择中旋转填充到我的工作表上的所有这些数据。

为了获得我需要的平均值/总数,我唯一的想法是将值分别更改为 1 和 0。在填充工作表上的数据之前,有没有办法将复选框的所有真值或假值编码为这些数字,或者我是否必须手动更改每个框的值,以便在目标单元格中​​放置 1 或 0?正如你可以想象的那样。

例如。 "desired cell range".Value = checkbox1.Value

填充数据表的图片示例,该表有 35 行。

【问题讨论】:

  • 您介意添加更多细节吗?

标签: excel vba


【解决方案1】:

checkbox1.Value 返回一个Boolean。如果您想将其转换为数字,只需使用CInt()(或CLng())。 VBA 将0 视为False-1 视为True,因此如果您希望平均值/总数为正,请取绝对值:

{desired cell range}.Value = Abs(CInt(checkbox1.Value))

【讨论】:

  • 非常感谢您的回复。没有办法将它编码为包含每个值吗?我有 35 个不同的标准生成数据,其中大部分是复选框。如果我必须重写每一个,就这样吧,只是希望我可以在按钮单击或用户表单的开头和/或结尾粘贴一些东西。
  • @Awill - 除非您使用类似控件数组的东西,否则不会。您可以在之后再次更新所有单元格,但这会非常低效。只需将代码复制并粘贴到执行正则表达式搜索和替换的编辑器中 - 如果您不想搜索所有内容,这应该是一项快速的工作。
猜你喜欢
  • 1970-01-01
  • 2014-06-25
  • 2017-10-31
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
相关资源
最近更新 更多