我有一个excel文件,我无法将时间格式从hh:mm AM / PM转换为hh:mm(24h)。 由于列是以文本格式化的,因此应用数字格式属性根本不起作用(它什么都不做)。
但是我注意到公式" = TEXT(C1;" H:MM")"运作良好。 所以我构建了一个powershell脚本,它在每个工作表上循环,然后继续在新列中应用公式,以便创建更正的值:
$rows = $WorkSheet.UsedRange.Rows.Count
for ($i = 8; $i -le $rows ; $i++)
{
$formula1 = '=TEXTE(C'+$i+';"H:MM")'
$formula2 = '=TEXTE(E'+$i+';"H:MM")'
$WorkSheet.Cells.Item($i,4).Formula = $formula1
$WorkSheet.Cells.Item($i,6).Formula = $formula2
}
即使这个循环成功,但执行还需要很长时间。 我的Excel文件包含大约37张纸和每张大约100行。整个过程需要20多分钟才能完成。
我在这里想念的是什么,我该如何优化呢?
答案 0 :(得分:-1)
你可以做这样的事情来加速这个过程。当然,你必须遍历你的床单。
Sub DoThis()
Sheet3.Range("M:M").Select
Selection.NumberFormat = "h:mm;@"
Selection.FormulaR1C1 = Selection.Value
End Sub