Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

VBA - jak zrobić pętlę dla kolejnych arkuszy

poddasze 19 Oct 2017 09:20 1842 7
  • #1
    poddasze
    Level 2  
    Dzień dobry.
    Napisałam (a właściwie wygenerowałam za pomocą rejestrowania makr) kod dla jednego arkusza i potrzebuję, żeby wykonał on się dla kolejnych arkuszy.
    Chodzi o przekopiowanie wybranych komórek z arkuszy do jednego zbiorczego pliku o nazwie dane.
    Arkusze mają nazwę od RD1 do RD10, czasami tych arkuszy jest więcej, (mam więcej takich plików) więc potrzebuję, żeby pętla wykonywała się, dopóki będą arkusze o tej nazwie. Przed tymi arkuszami w pliku1 znajdują się arkusze o innej nazwie, które mnie nie interesują.

    Druga sprawa, czy można przekształcić ten kod tak, aby kopiowanie wybranych komórek działo się za jednym zamachem? a potem wklejanie?

    W następnym kroku będę próbowała ogarnąć jak to zastosować do wielu plików w wybranym folderze, gdyż takich plików mam więcej niż jeden i z wszystkich muszę zaciągnąć dane.

    Code: vbscript
    Log in, to see the code
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
  • #2
    kiss39
    Level 38  
    Hmm
    Możesz zdradzić do czego ci to potrzebne ?
  • #3
    poddasze
    Level 2  
    kiss39 wrote:
    Hmm
    Możesz zdradzić do czego ci to potrzebne ?


    same dane są mi niepotrzebne, jedynie chcę sprawdzić ich poprawność, a żeby to zrobić, musiałabym wejść w sto plików razy 10 arkuszy.
  • #4
    JRV
    VBA, Excel specialist
    Gdzie należy umieścić dane następujących arkuszow i plików?
    poddasze wrote:
    Windows("plik2.xls").Activate
    plik2.xls to literowka?
  • #5
    Tomakkos
    Level 6  
    Ja mam taki kod VBA. Jedyny problem to pętla. Nie wiem dlaczego nie pobiera danych z kolejnych arkuszy a tylko z tego samego lub dwóch pierwszych

    Coś jest nie tak.

    Sub Scalanie()

    folder = "D:\Pliki\"

    Set master = ActiveSheet

    plik = Dir(folder & "*.xlsx")

    wiersz = 14

    Do While plik <> ""

    Set scalany = Workbooks.Open(folder & plik).Worksheets("Arkusz1")

    Set zakres = scalany.Range(Range("A2:Ac2"), Range("A2:Ac2").End(xlDown))

    zakres.Copy master.Cells(wiersz, 2)

    wiersz = wiersz + zakres.Rows.Count

    scalany.Parent.Close

    Loop


    End Sub
  • #6
    JRV
    VBA, Excel specialist
    zapomniales Dir() przed Loop
  • #7
    poddasze
    Level 2  
    JRV wrote:
    Gdzie należy umieścić dane następujących arkuszow i plików?



    W jednym skoroszycie w jednym arkuszu jedno pod drugim.


    JRV wrote:

    poddasze wrote:
    Windows("plik2.xls").Activate
    plik2.xls to literowka?


    tak, to literówka, a właściwie cyfrówka ;)
  • #8
    JRV
    VBA, Excel specialist
    Sprobuj
    Code: vb
    Log in, to see the code