Microsoft Excel, jak wybrać wszystkie komórki, które spełniają określony warunek (tj. Większy niż wartość)

0

Korzystam z programu Microsoft Excel 2013 i chcę zaznaczyć wszystkie komórki, które zawierają wartość większą niż wartość. Jak mam to zrobic ?

Próbowałem użyć Go To Specials, ale wydaje się, że jest w stanie wybrać tylko komórki, które mają określone właściwości, takie jak spacje, formuły lub widoczne komórki.

Znalazłem również rozszerzenie Microsoft Excel, takie jak Ablebits, ale musi zapłacić, i wolę domyślną funkcję od programu Excel.

Z góry dziękuję.

Charas
źródło
co chcesz z nimi zrobić po selekcji? Czy wszystkie komórki są w jednej kolumnie, czy w wielu? Jednym z obejść może być wstawienie kolumny pomocniczej, w której za pomocą formuły sprawdza się, czy komórki spełniają kryteria, niż można filtrować komórki.
Máté Juhász
dane dotyczą około 30+ kolumn i każda kolumna obejmuje około 100 wierszy, zamierzam usunąć wszystkie komórki, które zawierają wartość większą niż pewna wartość, wszystkie dane są liczbami
Charas
Żeby się upewnić. Kiedy mówisz „usuń”, czy masz na myśli usunięcie go i przesunięcie wszystkich komórek pod nim o jeden krok w górę .Delete Shift:=xlUpczy przesunięcie wiersza w lewo .Delete Shift:=xlToLeft? A może po prostu chcesz zostawić pustą komórkę?
Christofer Weber
Usuń i przenieś wszystkie komórki w górę
Charas
Możesz użyć filtru, a następnie zastosować filtr Większy niż wartość zobaczysz niechciane komórki, wybierz komórki i przejdź do specjalnego i użyj widocznego tylko tego, aby wybrać ten, który chcesz usunąć, a następnie usuń wiersze, jeśli chcesz usunąć cały wiersz
Sam

Odpowiedzi:

1

Jednym ze sposobów jest przeglądanie wszystkich danych za pomocą małego makra.

Sub clean()
Dim r As Range, i As Integer
Set r = Range("A1:AE150")
Application.ScreenUpdating = False
Do
    i = 0
    For Each cell In r
        If cell.Value >150000 Then
            cell.Delete Shift:=xlUp
            i = i + 1
        End If
    Next cell
Loop While i > 0
Application.ScreenUpdating = True
End Sub

Ostrzeżenie
Działania makra nie mogą zostać cofnięte. Zawsze zapisuj przed uruchomieniem, aby zapobiec utracie danych.

Zauważ, że to makro nie powiedzie się, jeśli istnieją tabele uczestniczące

Christofer Weber
źródło
Okej, więc utworzyłem nowe makro, edytowałem makro i dodałem twoje kody, usunąłem 'Lub dowolny zakres, zmień r na Zakres („A2: AE150”), zmieniłem komórkę.Wartość> 150000, a następnie uruchomiłem makro, to usunąłem niektóre komórki, które zawierają wartość> 150000, jednak nadal istnieje wiele komórek, które mają wartość> 150000 i nie zostały usunięte, czy coś mi brakuje?
Charas
@Charas Masz rację. Zmiesza się z powodu przesunięcia komórek. Jak powiedziano, A5 jest czyszczony z wysokiej wartości, nowa wysoka wartość może zostać przeniesiona do A5. I nie jest ponownie sprawdzane. Wielokrotne uruchomienie jest jednym ze sposobów, aby to naprawić. Lub napisać lepszy kod. (przepraszam za to)
Christofer Weber
Tak, myślę, ponieważ makro przesuwa się na boki w lewo, że kiedy komórka została usunięta i przesunięta w górę, komórka, która została przeniesiona w górę, nie została ponownie sprawdzona. Jak usunąć komórki bez przenoszenia komórek w górę? czy to tylko komórka. Następnie ręcznie uruchomię wszystkie puste pola po uruchomieniu makra.
Charas
@Charas Ponieważ nie możesz technicznie usunąć komórek bez ich przeniesienia, możesz ustawić wartość na nic, zmieniając cell.Delete Shift:=clUpna cell.Value = "". Zaktualizowałem również kod, aby powtarzać proces aż do zakończenia. Wypróbuj dowolne z tych rozwiązań.
Christofer Weber
@Charas Przepraszamy, znaleziono mały błąd w kodzie. Powinien teraz działać lepiej.
Christofer Weber