使用vba更改单元格的格式

我使用低于vba代码将单元格值从一个表格复制到另一个表格。 该值将永远是一个数字。 我已经将源和目标单元格格式化为一个数字。 但是每当vba运行时,即使单元格格式没有变化,我也会收到消息" Number stored as text" 。 我该如何解决这个问题? VBA代码:

  Private Sub Worksheet_Calculate() Application.ScreenUpdating = False Dim ws As Worksheet Set mw = Workbooks("StockScreen.xlsm").Sheets("MW") Set ws = Workbooks("StockScreen.xlsm").Sheets("TimeStampWork") If Value <> mw.Range("A2").Value Then Range("A2,E2").Copy ws.Range("B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row + 1).PasteSpecial xlPasteValues Dim Max Dim Min Max = Application.WorksheetFunction.Max(ws.Range("b:b")) Min = Application.WorksheetFunction.Min(ws.Range("b:b")) Sheets("TimeStampWork").Range("F2") = Max Sheets("TimeStampWork").Range("G2") = Min End If End Sub 

可以代替

 Range("A2,E2").Copy ws.Range("B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row + 1).PasteSpecial xlPasteValues 

尝试

 Range("A2,E2").Copy With ws.Range("B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row + 1) .PasteSpecial xlPasteValues, , False, False .PasteSpecial xlPasteFormats, , False, False End With