[excel, makro] kopiowanie wierszy z kilku arkuszy do jednego


(nz_cris) #1

Witam,


(Drobok) #2

Nie wiem co mnie pokusiło by to napisać, widać main w grze mi nie służy :P 

Sub f()
  i = 1
  Z = 1
  Do While Sheets("Arkusz1").Cells(i, 1).Value <> ""
    j = 1
    Do While Sheets("Arkusz" & j).Cells(j, 1).Value <> "" And j < 9
      Sheets("Arkusz9").Range(Z & ":" & Z).Value = Sheets("Arkusz" & j).Range(i & ":" & i).Value
      j = j + 1
      Z = Z + 1
    Loop
    i = i + 1
  Loop
End Sub

(nz_cris) #3

Kod zadziałał dla skoroszytu w którym nie zmieniono nazw arkuszy z systemowych.

Dostosowałem go do swojej wersji i zastosowałem pętle For

 

Sub Copy()
  
  Dim k As Long
        i = 3
        Z = 1
        Do While Sheets("Date").Cells(i, 1).Value <> ""
             j = 1
             For k = 2 To Worksheets.Count
             Sheets("Calendar_of_Use").Range(Z & ":" & Z).Value = Worksheets(k).Range(i & ":" & i).Value
             j = j + 1
             Z = Z + 1
             Next k
             i = i + 1
        Loop
End Sub

teraz pytanie:

Czy da się porównać drugą odczytaną zmienną, którą jest data, ze zmienną w pierwszym wierszu arkusza "Calendar_of_Use", następnie w kolumnie która która odpowiada danej dacie, znaleźć pierwszą wolną komórkę i tam wkleić jedna pod drugą 8 kolejnych komórek (po jednej z każdego skoroszytu)?