2017-08-31 2 views
1

J'utilise le code vba ci-dessous pour copier une valeur de cellule d'une feuille à l'autre. La valeur sera toujours un nombre. J'ai formaté les cellules source et cible sous forme de nombre. Mais à chaque fois que vba s'exécute, j'obtiens le message " Number stored as text" même s'il n'y a pas de changement dans le format de la cellule. Comment puis-je résoudre ce problème? code VBA:changer le format d'une cellule en utilisant 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 
+2

Si tout ce que vous voulez faire est de valeurs de copie, pourquoi utiliser le copier-coller du tout? Affectez juste le '.Value' de la gamme de source au' .Value' de la gamme cible. –

+0

@JohnColeman Merci pour les suggestions. J'ai changé mon code en conséquence – acr

Répondre

1

Peut être au lieu de

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

essayer

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 
+0

en me donnant coller spécial erreur hors plage sur .PasteSpecial xlPasteFormats,, False, False – acr

+1

Essayez: 'ws.Range (" B "& ws.Cells (ws.Rows.Count," B "). End (xlUp) .Row + 1) .Value = Range ("A2, E2"). Value' – Xire

+0

@acr - Assurez-vous que 'TimeStampWork' est un nom de feuille légitime. – Mrig