So i got problem with FindNext in my code, its like vba don't see objects i created outside the loop.
Sub Macro1()
'Dwa skoroszyty
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Wynik")
Dim NaglowekWiersz, NaglowekKolumna As Integer
NaglowekKolumna = 1
NaglowekWiersz = 1
Worksheets("Sheet1").Activate
Set LpDoZnalezienia = ws1.Range("A:A").Find("lp.", LookAt:=xlPart)
Set RazemDoZnalezienia = ws1.Range("A:A").Find("Razem", LookAt:=xlWhole)
'Petla do szukania pracowników
For a = 1 To 3
If (a > 1) Then
Set LpDoZnalezienia = ws1.Range("A:A").FindNext(LpDoZnalezienia).Offset(1, 0)
Set RazemDoZnalezienia = ws1.Range("A:A").FindNext(RazemDoZnalezienia)
End If
'Znalezienie danego pracownika
Set Pracownik = ws1.Range(LpDoZnalezienia, RazemDoZnalezienia).Resize(, 12)
Worksheets("Wynik").Activate
For b = 1 To 35
'Dana Wartość z arkusza wynik aka nagłówek
Dim szukanaWartosc As String
szukanaWartosc = ws2.Cells(1, NaglowekKolumna).Value
'Znaleziona wartosc w arkuszu Sheet1
Worksheets("Sheet1").Activate
Set WartoscDoZnalezienia = Pracownik.Find(szukanaWartosc, LookAt:=xlWhole)
If WartoscDoZnalezienia Is Nothing Then
GoTo Line
Else
Set Znalezione = WartoscDoZnalezienia.Offset(0, 2)
End If
Worksheets("Wynik").Activate
ws2.Cells(NaglowekWiersz + 1, NaglowekKolumna) = Znalezione.Value
Line:
'Przesuniecie naglowka o 1 w arkuszu wynik aby szukalo kolejnej wartości
NaglowekKolumna = NaglowekKolumna + 1
Next b
NaglowekKolumna = a
NaglowekWiersz = NaglowekWiersz + 1
Next a
End Sub
When i try to use FindNext with earlier declared Find its giving me Run-time error 91 that Object or variable is not set in this line:
Error when the code go to findNext
It works perfectly when I copy those 2 line with find next outside the loop. Can somebody tell me what im doing wrong in my code?
a
when the bug happens? From your description, I would guess that it occurs whena = 3
. You should check ifLpDoZnalezienia
isNothing
before using it. Also, usingOption Explicit
and declaring all of your variables would make your code more robust. – John ColemanLpDoZnalezienia
with a new value. Error 91 is caused by.Offset(1, 0)
whenFindNext
returnsNothing
. – GSerg