Wątek przeniesiony 2021-09-16 10:10 z Inne języki programowania przez cerrato.

Excel VBA Pętla w Pętli i przypisanie zmiennej do numeru komórki

0

Witam
Mam problem z pętlą w pętli i oznaczaniem liczby komórki za pomocą zmiennej.
Np:

dim  start as integer
start = 3
If Worksheets("test1").Cells(start, 6)

Cały kod wygląda tak:

Sub arkusze()
Dim start, drugie, koniec As Integer
    start = 3
    drugie = 3  
    For i = start To 15
If Worksheets("test1").Cells(start, 6) = Worksheets("test2").Cells(drugie, 6) Then
Worksheets("test1").Cells(4, 7) = Worksheets("test2").Cells(4, 7)
Else:
For o = drugie To 15
If Worksheets("test1").Cells(start, 6) = Worksheets("test2").Cells(drugie, 6) Then
Worksheets("test1").Cells(4, 7) = Worksheets("test2").Cells(4, 7)
Next o
End If
Next i
Exit For
End Sub

Intencja makra jest taka:
Porównianie komórki (3,6) w arkuszu test1 z komórką (3,6) z test2 jeśli jest ta sama to przypisuje wartosc komorki z (3,7)-arkusz test2 do komórki (3,6)z test1
Jeśli wartość jest inna , to pętla przeskakuje dalej i i komórka (3,6)z arkuszu test1 jest porównywana do wartości komorki (4,6) z arkuszu test 2

Za pomoc z góry dziękuje.

0

Ani z kodu, ani z opisu nie wiem co chcesz osiągnąć i po co 2 pętle...

0

2 pętle , ponieważ myślałem , że jedna będzie przechodzić po całości , a druga będzie działać , gdy warunek jest nieprawdziwy i trzeba będzie szukać kolejnej wartości do porównanie.

Opis średnio tłumaczy , ale chce to zastosować przy np : słowniku.
Po lewej słowa z j.ang po drugiej z polskiego.
Słowa przetłumaczone znajdują się w 1 skoroszycie , w drugim mamy natomiast tylko zdanie w j.ang .
Myślę , że trochę objaśniłem sytuację.

0

Zakladajac że w kolumnie a w skoroszycie "test1" masz slowa do przetlumaczenia, a w skoroszycie "slownik" masz w kolumnie A slowo a w kolumnie B slowo przetłumaczone, to uzyj VLOOKUP:

 Dim slownik As Worksheet
    Dim slowo  As String
    Dim i      As Integer


    Set slownik = ThisWorkbook.Sheets("slownik")
    On Error Resume Next

    For i = 1 To 15
        slowo = ""
        slowo = Application.WorksheetFunction.VLookup(Worksheets("test1").Cells(i, 1), slownik.Range("A1:B15").Value, 2, False)
        Worksheets("test1").Cells(i, 2) = slowo
    Next

1 użytkowników online, w tym zalogowanych: 0, gości: 1