Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba excel-多时间格式的问题_Vba_Excel - Fatal编程技术网

vba excel-多时间格式的问题

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

你好,

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

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

我有点不知所措,不知该在这里做什么。我不能改变报告发给我的格式。我的想法是,也许我可以找到一种方法,将自定义格式“13:00”转换为字符串“13:00”,而不是0.56412


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

要将单个时间更改为字符串,您可以使用
格式
,并使用
将要excel的值标识为字符串。

例如:

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

您可以使用
isnumeric
检查它是否为单一时间True表示这是一个时间,False表示这是一系列时间

可能使用“如果没有”的话,那么“查找”就什么都不是了。这将适用于单条目和双条目的时间。否则将用于双条目。您认为有多少人将下载并运行您的宏启用文件?请阅读以了解如何在此网站上获得更有效的帮助。非常感谢!我想这会管用的。