我正在创建一个宏,它从 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
我认为你走在正确的轨道上,但对于循环,只需使用数组的 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