在VBA Excel中,当我将一个单元格复制到另一个单元格时,如果它是一个不复制的date,我该怎么办?

这可能很简单,但我GOOGLE了,找不到答案。 我也只是学习VBA(我已经做了VB.NET等)

如果macros正在试图复制的单元格是一个date,我刚刚得到一个数字复制,例如从23/06/2010的40352

这里是一个代码片断,任何帮助最高度赞赏,谢谢:

Sheet5.Range(Cells(rwStartNumber, currentColumn + 1).Address(False, False)) = Sheet5.Range(Cells(rwStartNumber, currentColumn).Address(False, False)) 

显然这是两个循环,但这不是问题所在。

谢谢!

你可以尝试以下

 With Selection .PasteSpecial xlPasteValuesAndNumberFormats End With 

请让我知道这对你有没有用,

亲切的问候,

您可以看到数字,因为这就是Excel存储date的方式 :您需要将目标单元格的格式更改为Date ,并且它将正确显示。

您可以从源单元格中复制NumberFormat属性,例如:

 'Following line copies the values...' ws.Cells(curRow, curCol + 1) = ws.Cells(curRow, curCol) 'And this copies the formats...' ws.Cells(curRow, curCol + 1).NumberFormat = ws.Cells(curRow, curCol).NumberFormat 

(ws是Worksheettypes的variables,可以像这样分配它:

 Dim ws as Worksheet Set ws = Worksheets("Sheet5") 

或者你可以使用ActiveSheet)