vba excel - 多种时间格式的问题

时间:2017-10-10 20:17:48

标签: excel vba excel-vba

Files here

您好,

我正在尝试编写代码来格式化报告。该报告的主要问题是,当每行在每个单元格中只有一条数据时,某些单元格会在单元格中存储多个数据。到目前为止,我的解决方案是使用受影响单元格的文本到列函数,粘贴所有其他转置的数据,最后在原始报表区域上复制和重新转置新数据。到目前为止,这已经奏效,但我遇到了存储时间的单元格的问题。单次(例如13:00)的单元格采用自定义格式hh:mm,其中vba将转换为十进制数字。具有多次(例如11:009:008:0010:30)的单元格被视为字符串。

我目前用于分割时间的代码适用于多个时间单元格,因为它在字符串中搜索“:”,但是vba在自定义格式单元格13:00中没有检测到“:”,因为内部它看到了单元格的值类似于0.56412。

我有点不知道该怎么做。我无法更改报告到达的格式。我的想法是,我可以找到一种方法将自定义格式“13:00”变为字符串“13:00”而不是0.56412

我已将代码文件和我正在测试的截断虚拟报告附加到代码上。我要感谢所有提前回应他们的人!

1 个答案:

答案 0 :(得分:0)

要将单个时间更改为字符串,您可以使用format并使用'

将要识别的值标识为字符串

示例:

'immediate window
[a1]="'"&format([a1],"hh:nn")
'or, using a range
range("A1")="'"&format(range("A1"),"hh:nn")

您可以使用isnumeric检查是否一次。 真实意味着它是一个时间,错误意味着它是一串次