2010-12-13 2 views
7

W programie Excel VBA jest sposób bezpiecznie używać Range("A1:B2").ClearContent bez usuwania formuł istniejących w komórkach?Excel: ClearContent zachowujące formuły

Po to, aby mój scenariusz był bardziej przejrzysty: pobieram świeże dane z bazy danych i chcę tylko wymazać wszystko z arkusza, ale nie formuły, ponieważ rozwiąże to niektóre dane w innych polach z werteksami.

+0

Więc co próbujesz usunąć? – SLaks

+0

Tylko wartości komórek: liczby, daty i tekst – Lorenzo

+0

Formuły _wykorzystaj_ wartości. – SLaks

Odpowiedz

10

Użyj właściwości SpecialCells, aby uzyskać tylko stałe wartości.

Sub RemoveConstants() 

    Dim rConstants As Range 

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

End Sub 
+2

Należy zauważyć, że jeśli żadne komórki w zakresie nie mają wartości, program Excel zgłasza błąd "Nie znaleziono komórek" w odpowiedzi na Zestaw rConstants = Arkusz1.Range ("A1: B2"). SpecialCells (xlCellTypeConstants) – Murrah

+2

Dodaj "On Error Resume Next" na początku sub, aby uniknąć błędu "Nie znaleziono komórek". –