2010-12-13 58 views
7

Dans Excel VBA est-il un moyen d'utiliser en toute sécurité Range("A1:B2").ClearContent sans supprimer les formules existantes dans les cellules? Simplement pour rendre mon scénario plus clair: je tire de nouvelles données de la base de données et je veux juste effacer tout sur la feuille mais pas sur les formules car celles-ci résoudront des données dans d'autres champs avec des vlookups.Excel: ClearContent préservant les formules

+0

Alors qu'est-ce que vous essayez d'effacer? – SLaks

+0

Juste les valeurs des cellules: nombres, dates et texte – Lorenzo

+0

Les formules _créent les valeurs. – SLaks

Répondre

10

Utilisez la propriété SpecialCells pour obtenir uniquement les valeurs constantes.

Sub RemoveConstants() 

    Dim rConstants As Range 

    Set rConstants = Sheet1.Range("A1:B2").SpecialCells(xlCellTypeConstants) 
    rConstants.ClearContents 

End Sub 
+2

Notez que si aucune cellule de la plage n'a réellement des valeurs, Excel renvoie une erreur "Aucune cellule trouvée" en réponse à Définissez rConstants = Sheet1.Range ("A1: B2"). SpecialCells (xlCellTypeConstants) – Murrah

+2

Ajoutez un 'On Error Resume Next' au début du sous-marin pour éviter l'erreur" Aucune cellule trouvée ". –