Marcin Borkowski

Marcin Borkowski Regionalny
Koordynator ds.
Kluczowych Klientów

Temat: VBA excel - Type mismatch runtime error 13

Cześć mam napisane takie makro:

Sub Usun_Etap()
Dim rob As String
rob = Selection.Address

If Left(Range("A" & Range(rob).Row), 4) = "Etap" And Right(Range("A" & Range(rob).Row), 6) <> "razem:" And Left(Range("B" & Range(rob).Row - 1), 4) <> "STAN" Then
Call Usun_Wiersz
Do Until (Range("A" & Selection.Row) Like "Etap*" And Not Range("A" & Selection.Row) Like "Etap*razem:") Or Selection Like "CAŁKOWITY KOSZT STANU*"
Call Usun_Wiersz
Loop
Call Numeruj
Else
MsgBox ("Zaznacz właściwy Etap")
End If
End Sub

Przy użuciu wyskakuje mi błąd Type mismatch runtime error 13 i wskazuje na linijkę :

Do Until (Range("A" & Selection.Row) Like "Etap*" And Not Range("A" & Selection.Row) Like "Etap*razem:") Or Selection Like "CAŁKOWITY KOSZT STANU*"

Jak rozwiązać ten problem?
Z góry dziękuję za pomoc.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: VBA excel - Type mismatch runtime error 13

Błąd prawdopodobnie tkwi w tej części :
.... Or Selection Like ...." 

Obiekt Selection to zakres (Range) - nie da się porównać z wartością typu String.
Generalnie jednak to makro mało mi się podoba. Czy zaznaczana jest jedna komórka czy więcej?
Jeżeli jedna - to wystarczy zwykłe If. Jeżeli natomiast wierszy w Selection jest więcej -to w jaki sposób następuje przejście do kolejnego wiersza? W dodatku - usuwanie wierszy zawsze trzeba robić od dołu do góry, a nie z góry w dół.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: VBA excel - Type mismatch runtime error 13

Zobacz jak zbudować pętlę FOR i jak jej nadać wsteczny bieg.
Sprawdź też o co chodzi w adresowaniu do komórki Cells() zamiast Range()

Następna dyskusja:

vba excel hiperłącze




Wyślij zaproszenie do