0

使用 VBA 打开一个工作簿,复制数据并将其粘贴到另一个工作簿。在第二个工作簿中,我为特定范围的自定义值格式(dd/mm/yyyy hh:mm)设置了一个公式,但该公式不起作用。在我双击之前,值将作为具有自定义格式的文本保存在单元格的左侧。两个工作簿(工作表)中的格式相同,我想保留它。

我一直在尝试使用以下方法修复它:

range.TextToColumns Destination:=range DataType:=xlFixedWidth FieldInfo:=Array(Array(0,9),Array(1,1), Array(16,9))

它在中途工作。日期适合单元格的右侧,但我的自定义日期比自定义日期少 17 天???:D 当我省略 Array(0,9) 它返回额外的日期 02/01/1990 并且我的原始日期移动到下一栏。

有没有人有任何解决方案?.TextToColumns 究竟是如何工作的?如何正确声明 FieldInfo 的 arg 以接收原始日期并将其放置在单元格的右侧?

4

1 回答 1

0

下面是如何将文本格式的日期(单元格 B1)转换为实际日期的示例。请注意文本格式是如何左对齐的,而日期格式是如何右对齐的。

请记住,日期是数字-> 整数部分是日期,小数部分是时间。

在此处输入图像描述

Public Sub sTestDate()

  Dim v As Variant

  v = Sheet1.Range("B1").Value
  Sheet1.Range("B2").Value = CDbl(CDate(v))
  Sheet1.Range("B3").Value = CDbl(CDate(v))
  Sheet1.Range("B3").NumberFormat = "dd/mm/yyyy hh:mm"

End Sub
于 2019-11-04T12:10:26.580 回答