您好,
我正在尝试编写代码来格式化报告。该报告的主要问题是,当每行在每个单元格中只有一条数据时,某些单元格会在单元格中存储多个数据。到目前为止,我的解决方案是使用受影响单元格的文本到列函数,粘贴所有其他转置的数据,最后在原始报表区域上复制和重新转置新数据。到目前为止,这已经奏效,但我遇到了存储时间的单元格的问题。单次(例如13:00)的单元格采用自定义格式hh:mm,其中vba将转换为十进制数字。具有多次(例如11:009:008:0010:30)的单元格被视为字符串。
我目前用于分割时间的代码适用于多个时间单元格,因为它在字符串中搜索“:”,但是vba在自定义格式单元格13:00中没有检测到“:”,因为内部它看到了单元格的值类似于0.56412。
我有点不知道该怎么做。我无法更改报告到达的格式。我的想法是,我可以找到一种方法将自定义格式“13:00”变为字符串“13:00”而不是0.56412
我已将代码文件和我正在测试的截断虚拟报告附加到代码上。我要感谢所有提前回应他们的人!
答案 0 :(得分:0)
要将单个时间更改为字符串,您可以使用format
并使用'
示例:
'immediate window
[a1]="'"&format([a1],"hh:nn")
'or, using a range
range("A1")="'"&format(range("A1"),"hh:nn")
您可以使用isnumeric
检查是否一次。 真实意味着它是一个时间,错误意味着它是一串次