vba将时间视为字符串

时间:2014-02-26 16:02:17

标签: vba excel-vba excel

我使用vba在excel中存储了一些值,并将它们与其他结果进行比较。结果可以是:名称,姓氏,地址,时间......

我遇到的问题是,当我存储具有日期格式的字符串时,它会自动将其作为时间。例如,如果我输入8:15它会自动将其转换为08:15,然后当我将它与其他相同值(8:15)进行比较时,它会返回false,因为它不是08:15。

所以基本上问题是......如何在不转换为08:15的情况下引入像8:15这样的值?

2 个答案:

答案 0 :(得分:0)

两种方法:

  1. 在值的前面放置一个撇号告诉Excel它是一个字符串。示例:值'8:15将被解释为值“8:15”的字符串。
  2. 使用公式将值存储为字符串。示例:="8:15"也被解释为值为“8:15”的字符串。

答案 1 :(得分:-2)

我假设这是在您输入单元格中的值时。单元格的格式可能是一般的,因此它会格式化数字或日期不同的东西。将其更改为文本。

选择所有(或特定列)右键单击 - 格式化单元格 - 数字选项卡 - 文本选项。它说“即使数字在单元格中,文本格式单元格也会被视为文本。单元格显示为输入完全”

修改

另一个选项,在VBA中使用.FormulaR1C1代替.value进行比较。 .value是单元格的实际值(如公式结果),其中.formulaR1C1将为您提供实际输入的文本。所以.formulaR1C1可能会得到实际输入的8:15而不是更正的值:08:15。