Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA wykorzystanie wartości komórki w excelu jako nazwę innego pliku

elwis_85 04 Kwi 2011 11:13 2149 1
  • #1 04 Kwi 2011 11:13
    elwis_85
    Poziom 9  

    Witam usiłuję napisać funkcje, która wyszukiwałaby plik o nazwie będącej w komórce excela, otwierała ten plik i kopiowała z niego zawartość pewnej komórki, w przypadku gdyby nazwa takiego pliku nie istniała funkcja realizowana jest dla kolejnych nazw pliku.

    Poniższe zdjęcie dobrze obrazuje problem, mam skoroszyt o nazwie „proba” z komórkami z nazwami plików excela. W tym samym folderze co plik „proba” znajdując się pozostałe pliki, z których ma być kopiowa na wartość.
    VBA wykorzystanie wartości komórki w excelu jako nazwę innego pliku

    Oto moje wypociny, nie wiem dlaczego nie działa :(

    Code:

    Sub Makro1()

    Dim plik As Workbook
    wiersz = 2
    Application.ScreenUpdating = False
        Do Until wiersz < 5
            nazwaPliku = Cells(wiersz, 1).Value
           
               For Each oWBK In Workbooks
                    If oWBK.Name = nazwaPliku Then
                       
                        Set plik = Workbooks.Open(nazwaPliku)
                       
                         Workbooks("proba").Sheets(1).Cells(wiersz, 2) = worbook.nazwaPliku.Sheets(1).Cells(1, 1).Value
                         
                         oWBK.Close
                    End If
                Next oWBK
        wiersz = wiersz + 1
       
        Loop
       
    '
    End Sub



    będe wdzięczny za każdą sugestie :)
    Pozdrawiam

    0 1
  • Pomocny post
    #2 04 Kwi 2011 11:47
    marcinj12
    Poziom 40  

    Po pierwsze: nie włączasz ponownie odświeżania ekranu:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Po drugie: musisz podać pełną ścieżkę i rozszerzenie .xls w parametrze Workbooks.Open() (chyba że plik jest w tym samym folderze)

    Spróbuj tak:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0