Excel似乎只更改了某些列的格式
使用VBA,我导入一个csv文件并将一组数据放入几列中 其中一列有日期和时间。由于我需要能够只使用这些单元格中的“时间”部分,所以我尝试使用(以及几乎所有其他变量)将整个列转换为时间 但是,这不会转换整个列。我尝试了所有其他可能的方法来选择整个列并对其进行更改(通过VB),但是仍然只有一部分仍然被转换 如果我双击这些未转换的单元格并按enter键,它们将更改为正确的格式。我意识到这是一个与计算相关的常见问题,但我的工作簿设置为自动计算,我也尝试过在VB中设置它。这不会改变任何事情 我能找到的唯一模式是,当一天达到两位数时,单元格停止转换。例如:Excel似乎只更改了某些列的格式,excel,format,vba,Excel,Format,Vba,使用VBA,我导入一个csv文件并将一组数据放入几列中 其中一列有日期和时间。由于我需要能够只使用这些单元格中的“时间”部分,所以我尝试使用(以及几乎所有其他变量)将整个列转换为时间 但是,这不会转换整个列。我尝试了所有其他可能的方法来选择整个列并对其进行更改(通过VB),但是仍然只有一部分仍然被转换 如果我双击这些未转换的单元格并按enter键,它们将更改为正确的格式。我意识到这是一个与计算相关的常见问题,但我的工作簿设置为自动计算,我也尝试过在VB中设置它。这不会改变任何事情 我能找到的唯一
C列
01/05/2013 7:28:56
03/05/2013 13:24:53
07/05/2013 20:13:24
09/05/2013 8:29:22
12/05/2013 9:28:56
15/05/2013 21:14:25
17/05/2013 7:28:56
7:28:56
13:24:53
20:13:24
8:29:22
12/05/2013 9:28:56
15/05/2013 21:14:25
17/05/2013 7:28:56
变成:
C列
01/05/2013 7:28:56
03/05/2013 13:24:53
07/05/2013 20:13:24
09/05/2013 8:29:22
12/05/2013 9:28:56
15/05/2013 21:14:25
17/05/2013 7:28:56
7:28:56
13:24:53
20:13:24
8:29:22
12/05/2013 9:28:56
15/05/2013 21:14:25
17/05/2013 7:28:56
在每个单元格顶部的公式栏中,它仍然显示所有单元格的整个日期和时间,不确定这是否相关,但就我必须使用时间进行的计算而言,似乎并不重要
基本上,我必须计算C列中一个单元格的时间和另一个单元格的时间(也是日期/时间格式),并检查差异。经过一些研究,我决定最好的方法是将所有的单元格转换成时间格式,然后进行计算
或者,我可以尝试将该列转换为文本,并使用拆分函数(使用空格作为分隔符)并拉出超时,但我在执行此操作时也遇到了问题,因为再次尝试将整个列转换为文本会在日期的两位数处停止
感谢您通读这些内容,如有任何想法和帮助,我们将不胜感激
编辑:意识到我的文章中有些语法不正确,但在我的宏中这是正确的
另一个编辑:我认为这肯定与日期格式有关。。。我刚刚意识到,在格式化它们之前,日期是
m/dd/yyyy
,然后当它达到实际的两位数时,它会变为dd/mm/yyyy
,这就是问题发生的时候…为了避免混淆,并且由于日期似乎总是占据相同的宽度,我建议
1) 将此列作为文本导入
2) 然后看一下整个专栏
For Each C In Range("A:A").Cells
If C <> "" Then
' ....
End If
Next C
适用于范围内的每个C(“A:A”)。单元格
如果是“C”,则
' ....
如果结束
下一个C
3) 切掉前面的11个位置,例如C=Mid(C,11,99)
4) 将剩余字符串转换为时间,例如,C=CDate(C)
(…是的,它也适用于时间,因为时间是日期的小数部分)
或者,您可能希望捕获日期部分并使其成形。有关使用工作表公式的一些想法,请参阅。为了避免混淆,并且由于日期似乎总是占据相同的宽度,我建议 1) 将此列作为文本导入 2) 然后看一下整个专栏
For Each C In Range("A:A").Cells
If C <> "" Then
' ....
End If
Next C
适用于范围内的每个C(“A:A”)。单元格
如果是“C”,则
' ....
如果结束
下一个C
3) 切掉前面的11个位置,例如C=Mid(C,11,99)
4) 将剩余字符串转换为时间,例如,C=CDate(C)
(…是的,它也适用于时间,因为时间是日期的小数部分)
或者,您可能希望捕获日期部分并使其成形。有关使用工作表公式的一些想法,请参见。对于具有一位数天数的单元格,公式栏中是否识别
dd/MM/yyyy
格式?看起来Excel可能认为它类似于MM/dd/yyyy
。检查您的区域设置,您可能需要首先调整日期。您可能是对的,我忘了在转换后的单元格中提到,在公式栏中,它反转了天/月数。嗯,我检查了windows区域设置-所有这些看起来都不错。短格式设置为dd/mm/yyyyy是否为公式栏中识别的具有一位数天数的单元格的dd/mm/yyyy
格式?看起来Excel可能认为它类似于MM/dd/yyyy
。检查您的区域设置,您可能需要首先调整日期。您可能是对的,我忘了在转换后的单元格中提到,在公式栏中,它反转了天/月数。嗯,我检查了windows区域设置-所有这些看起来都不错。短格式设置为dd/mm/yyyyThanks!是的,它确实有助于将这些单元格作为字符串导入。目前情况似乎还不错。谢谢你的时间!谢谢大家!是的,它确实有助于将这些单元格作为字符串导入。目前情况似乎还不错。谢谢你的时间!