循环查找Excel中日期值中的月份

问题描述 投票:0回答:1

我正在创建一个宏,它从 CSV 中获取日期以及它包含的其他信息,它为我提供了一些信息。

问题是,向我发送 CSV 的第三方始终将其发送为 dd/mm/yyyy 或 mm/dd/yyyy,我必须通过电源查询手动更改它,以将所有日期设置为 dd/mm/yyyy .

因为我对这一步有点厌倦,所以我想到让excel自己找到月份空间并继续步骤,而不必格式化日期。

因此,我正在寻找的循环是一个遍历字段一和字段二(fieldone/fieldtwo/yyyy)的 IF,当它发现最重复的数字时,这将是月份,并将分配日期值为 1(美国)或 2(英国),具体取决于日期类型。

请记住,我已经提前设置了 excel 来保留宏,尽管有美国或英国日期,美国是 1 ,英国是 2 ,但我需要这个,因为有一些月份和数字组合 excel 可能会发现很难分配,例如 1/8 可以是 1 月 8 日或 8 月 1 日

到目前为止,我在宏中创建了 3 种类型的日期: 1 - 美国 2 - 英国 3 - 分析并提出建议。

第 3 步是我所缺少的,需要一些建议

在这里,我让excel查找日期类型1或2,现在我需要excel读取字段并找到更重复的值,那就是月份。这将避免 Excel 将 1/8 与 8/1 混淆

If fechatxt(0) > 12 Then
                BuscarTipoFecha = 1
                Exit Function
            End If
            If fechatxt(1) > 12 Then
                BuscarTipoFecha = 2
                Exit Function
            End If
excel vba loops date if-statement
1个回答
0
投票

我认为你走在正确的轨道上,但对于循环,只需使用数组的 UBound 并将默认值设置为类型 2。如果循环发现值 > 12,则只会将其更改为类型 1。

BuscarTipoFecha = 2
For i = 0 to UBound(fechatxt)
   If fechatxt(i) > 12 Then
      BuscarTipoFecha = 1
      Exit Function
   End If
Next i
© www.soinside.com 2019 - 2024. All rights reserved.