2013-01-18 11 views
6

Mam dane z podobnego A1: Z50, ale chcę usunąć tylko A5: X50 przy użyciu VBA (Myślę, że będzie to dużo szybsze niż przeciąganie całej komórki lub używanie clickA5+shift+clickX50+delete). Jak mogę to zrobić?VBA dla czystej wartości w określonym zakresie komórki i zabezpieczonej komórki przed wymywaniem formuły

A następnie, jak zablokować komórkę, aby zapobiec jej naprawieniu lub wyczyszczeniu?

+3

Twoje pytanie jest niejasne. Pls określają, co masz na myśli, "jak zapobiegam wyczyszczeniu formuły" – brettdj

+0

Tak, dodam ją na początku chcę tylko usunąć, ale teraz widzę, że moja formuła też zniknęła: D – eathapeking

Odpowiedz

12

Można zdefiniować makro zawierający następujący kod:

Sub DeleteA5X50() 
    Range("A5:X50").Select 
    Selection.ClearContents 
end sub 

Uruchamianie makra wybierze A5 zakres: x50 w aktywnym arkuszu roboczym i wyczyść całą zawartość komórek w tym zakresie.

zostawić formuły nienaruszone należy stosować następujące zamiast:

Sub DeleteA5X50() 
    Range("A5:X50").Select 
    Selection.SpecialCells(xlCellTypeConstants, 23).Select 
    Selection.ClearContents 
end sub 

To będzie najpierw wybrać ogólny zakres komórek jesteś zainteresowany wyczyszczenie zawartości od a następnie dodatkowo ograniczyć wybór do tylko to komórki, które zawierają to, co program excel uważa za "stałe".

Możesz to zrobić ręcznie w programie Excel, zaznaczając zakres komórek, klikając "F5", aby wyświetlić okno dialogowe "Przejdź do", a następnie klikając przycisk "Specjalne" i wybierając opcję "Stałe" i klikając 'Ok'.

+0

Czy to będzie wyczyścić formułę zbyt dobrze: D jak zapobiec wyraźnej formuły: 3 lub nie way – eathapeking

+5

@Glen, nie musisz wybierać, aby wyczyścić go :) 'Arkusze (1) .Range (" A5: X50 "). – bonCodigo

+0

dziękuję bardzo za każdą pomoc wszystkim – eathapeking

3

Spróbuj

Sheets("your sheetname").range("A5:X50").Value = "" 

Można również użyć

ActiveSheet.range 
+0

po prostu zmień ją na pusta komórka i activesheet.range co to znaczy: D – eathapeking

+0

można również użyć activeSheet.range. ("A5: X50") value = "" Czego chcesz? Usunąć lub opróżnić? – Niklas

+0

rozumiem go teraz: 3 dziękuję jest zamiar zmyć kolor tła i komórek i Formula jest komórka – eathapeking

2

Nie jestem pewien jej szybciej z VBA - najszybszy sposób to zrobić w normalnym programowo Excel będzie:

  1. Ctrl-G
  2. A1:X50 Enter
  3. Delete

ile trzeba Zrób to bardzo często, wpisanie i wyzwolenie kodu VBA to więcej wysiłku.

Jeśli chcesz usunąć tylko formuły lub wartości, możesz wstawić Ctrl-G, Alt-S, aby wybrać opcję Goto Special, a następnie wybrać formuły lub wartości.

Powiązane problemy