2017-10-10 46 views
-1

Files hereVBA擅长 - 问题多时间格式

你好,

我想编写代码来设置报表格式。该报告的主要问题是,某些单元格在单元格中存储多个数据片段时,每行只能在每个单元格中存储一条数据。到目前为止,我的解决方案是使用文本到列的功能为受影响的单元格,粘贴所有其他数据转置,并最终复制和重新转置新的数据通过原始报告区域。迄今为止,这一切都奏效了,但我遇到了存储时间的单元问题。单次(例如13:00)的单元格是自定义格式hh:mm,该单元格将转换为十进制数字。多次(例如11:009:008:0010:30)的单元格被视为一个字符串。

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

我对这里要做什么感到不知所措。我无法改变报告到达的格式。我的想法是,也许我可以找到一种方法将自定义格式“13:00”变成字符串“13:00”而不是0.56412

我附上了代码文件和我正在测试编码的截断虚拟报告。我想感谢所有提前回复他们帮助的人!

+0

也许使用如果不是'发现:'是没有然后。这将是单倍和双倍的时间。否则将用于双重输入。 – mooseman

+1

您认为有多少人会下载并运行您的宏启用文件?请阅读[如何提问](http://stackoverflow.com/help/how-to-ask)了解如何在本网站获得更有效的帮助。 –

回答

0

到一个单一的时间更改为一个字符串,你可以使用format,并确定价值Excel作为使用字符串'

例如:

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

可以使用isnumeric来检查它是否是一个单次。 意味着这是一个时间,错误意味着它是一个时间串

+0

非常感谢!我认为这会起作用。 – xeno234