如何跨年份转换历元,包括DST

问题描述 投票:-2回答:1

我有一个电子表格,其在C列中包含以时代格式的“最后修改日期”,例如:

1486841495(最早的日期为2017年)1574478516(最新日期为2019)

C列有6003行。我想要做的是让脚本采用C列中的内容,并将其转换为E列中的以下格式:MM / DD / YY HH:MM:SS AM / PM。我的结果单元格格式正确,因此显示正确。我在中央时区。

我几乎没有编写代码的经验,并且我一直试图拼凑几个小时。

这是我所能获得的最接近的值,但是它只能在一个单元格上运行,而我需要在整个C列上运行。有人可以帮忙吗?

Sub CalcDate()

'2017

If Range("C2").Value > 1483250400 And Range("C2").Value < 1489298520 Then
Range("E2:E10").Value = ((Range("C2:E10") - 21600) / 86400) + 25569

ElseIf Range("C2").Value > 1489298520 And Range("C2").Value < 1509858120 Then
Range("E2").Value = ((Range("C2") - 18000) / 86400) + 25569

ElseIf Range("C2").Value > 1509858120 And Range("C2").Value < 1514743199 Then
Range("E2").Value = ((Range("C2") - 21600) / 86400) + 25569

'2018

ElseIf Range("C2").Value > 1514786400 And Range("C2").Value < 1520755200 Then
Range("E2:E10").Value = ((Range("C2:E10") - 21600) / 86400) + 25569

ElseIf Range("C2").Value > 1520755200 And Range("C2").Value < 1541318400 Then
Range("E2").Value = ((Range("C2") - 18000) / 86400) + 25569

ElseIf Range("C2").Value > 1541318400 And Range("C2").Value < 1546279199 Then
Range("E2").Value = ((Range("C2") - 21600) / 86400) + 25569

'2019

 ElseIf Range("C2").Value > 1546322400 And Range("C2").Value < 1552204800 Then
    Range("E2:E10").Value = ((Range("C2:E10") - 21600) / 86400) + 25569

    ElseIf Range("C2").Value > 1552204800 And Range("C2").Value < 1572768000 Then
    Range("E2").Value = ((Range("C2") - 18000) / 86400) + 25569

    ElseIf Range("C2").Value > 1572768000 And Range("C2").Value < 1577815199 Then
    Range("E2").Value = ((Range("C2") - 21600) / 86400) + 25569


End If
End Sub
excel vba if-statement epoch nested-if
1个回答
0
投票
Sub CalcDate() Dim cell as Variant For Each cell in Range("C2:C6003") '2017 If cell.Value > 1483250400 And cell.Value < 1489298520 Then Range(Cells(cell.Row, 3),Cells(cell.Row,5)).Value = ((Range(cell,"E10") - 21600) / 86400) + 25569 'Not sure if E10 depends on the C2 value, but use Cells(cell.row,column number) to get some sort of logic to connect it back to the location of cell. 'blah blah blah '2018 'blah blah blah '2019 'blah blah blah End If Next cell End Sub
© www.soinside.com 2019 - 2024. All rights reserved.