将值从一个工作簿复制并粘贴到另一个工作簿后,公式不适用于特定范围,直到我双击单元格

After copy and paste values from one workbook to another, a formula doesn't work with a specific range until I doubleClick cells

使用 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) 时,它 returns 附加日期 02/01/1990 和我的原始日期移到下一栏。

有人有解决办法吗? .TextToColumns 究竟是如何工作的?如何正确声明 FieldInfo 的 arg 以接收原始日期并将其适合单元格的右侧?

下面的示例说明了如何将文本格式的日期(单元格 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