Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 73194 Skopiuj do schowka usunięcie zawartości jeśli komórka zawiera
Autor Wiadomość
arturpl 
Stały bywalec Excelforum


Wersja: Win Office 365
Posty: 259
Wysłany: 04-08-2022, 07:24   usunięcie zawartości jeśli komórka zawiera

Hej w jaki sposób w VBA wyczyścić zawartość komórki jeśli zawiera ona konkretny tekst ?
Przykładowo w zakresie A1:B80 chce wyczyścić komórki które zawierają frazę "wiersz" i komórka A74 zawiera "Alicja pisze długie wiersze o miłości" to powinna zostać wyczyszczona
ID posta: 419410 Skopiuj do schowka
 
 
kuma 
Excel Expert


Wersja: Win Office 2010
Pomógł: 1513 razy
Posty: 4323
Wysłany: 04-08-2022, 08:35   

Nie wiem jaki masz układ danych w arkuszu (brak załącznika).
Przyjąłem zakres na sztywno 'a1:b80'. Przetestuj.
Kod:
Sub test_kuma()
    Dim r As Object, mcol As Object
    Dim i As Integer, ii As Integer
    Dim toclear As String
    Dim a()
   
    a = [a1:b80].Value
    Set r = VBA.CreateObject("VBScript.RegExp")
    With r
       .Pattern = ".*wiersz.*"
       .MultiLine = True
       .Global = True
       .IgnoreCase = True
        For i = 1 To UBound(a)
            For ii = 1 To UBound(a, 2)
                If .test(a(i, ii)) Then toclear = toclear & "," & Cells(i, ii).Address
            Next
        Next
    End With
    toclear = Mid(toclear, 2)
    If Len(toclear) > 0 Then Range(toclear).ClearContents
    Set r = Nothing
End Sub
_________________
Pozdrawiam.
ID posta: 419412 Skopiuj do schowka
 
 
ple4
Stały bywalec Excelforum


Wersja: Win Office 2003
Pomógł: 58 razy
Posty: 261
Wysłany: 04-08-2022, 12:08   

Kod:
Option Explicit

Sub aaa()
    Const sht As String = "Arkusz1"
    Const clrng As String = "A1:I20"
    Const wht As String = "wiersz"
   
    Dim fnd As String, c As Range
   
    fnd = "*" & wht & "*"
   
    With ThisWorkbook.Worksheets(sht)
        .Select
        For Each c In .Range(clrng).Cells
            If c.Value Like fnd Then c.Value = vbNullString
        Next
    End With
End Sub
ID posta: 419421 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 969 razy
Posty: 5280

Wysłany: 05-08-2022, 23:11   

Na przyszłość (ale kliknij teraz link w mojej sygnaturce) - zastosuj się.
.
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
Chcesz precyzyjną odpowiedź - zadaj precyzyjne pytanie.
ID posta: 419459 Skopiuj do schowka
 
 
arturpl 
Stały bywalec Excelforum


Wersja: Win Office 365
Posty: 259
Wysłany: 06-08-2022, 04:32   

Dziękuję, działa tak jak chciałem :)
umiejead - przyjąłem do wiadomości i będę dodawał pliki :)
ID posta: 419460 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe