2013-01-23 36 views
0

在Excel将自动格式设置应用于单元格之前,我需要获取用户输入到单元格中的值。例如1230E45被转换为1.23E + 48(科学记数法)。在Excel应用自动格式化之前获取单元格值

我知道用户可以通过将单元格格式化为文本来避免此问题,但我不希望他每次都这样做。

有没有办法在编辑模式下捕获keydown来存储用户输入的内容?

或一个更好的主意....

+0

单元格处于编辑模式时没有事件触发,因此无法预先格式化该值。编辑后可用的最近点是我认为的'worksheet_change'事件,这对您的目的可能太晚了。据推测“1230E45”不是一个真正的数字,而是其他的东西?我认为你唯一的选择是将单元格预先格式化为文本格式:如果用户可能输入此类型值的某个特定范围,则可以在'worksheet_selectionchange'事件中执行此操作。 –

回答

0

我知道,用户可以通过预先格式化,对小区的 文本避免这个问题,但我不想让他\她做每次。

如果输入单元位于在某些限定区域,比方说1分或几列 - 你可能预格式化为文本整个区域使用通常的“单元格属性”对话框。

也许这是一个有点简单,但有没有在你的输入,使我的解决方案完全不可能)

0

仅Excel格式的数字显示的目的 - 潜在价值被存储为双精度浮点访问使用Cell。值2。
所以大概你是在谈论Excel的一些看起来像数字(1230E45 ... 24-Sep-1992等)的东西时自动转换为数字,当你希望它们是文本时。

如果是一些可能的解决方案是:

  • 捕获表单中的数据,然后它被输入后,在 你想
  • 后处理数据的形式传送到Excel,并将其转换回你想要的形式
  • 选择性地将单元格预先格式化为文本(有效地预先创建工作表格以供用户填写)
  • 使用工作表控件(如数据验证,列表框等)以允许从列表中选择用户条目
相关问题