2013-07-04 2 views
5

Bardzo nowość w tym zakresie, więc proszę o pomoc. Próbuję masowych plików aktualizacji w lokalizacji folderu statycznego, wiele plików w jednym folderze.Makro VBA do aktualizacji wielu plików w tej samej lokalizacji

co chcę zrobić, to

  • prowadzony makro VBA w programie Excel 2010 do goto folderu lokalizacji sieciowej,
  • otwarcie pierwszego pliku w folderze.
  • Chroń skoroszyt i arkusze wywołać inny Marco uruchomić zmienia
  • następnie chronić arkusz zamknąć plikowi
  • a następnie przejść do następnego pliku w folderze aż wszystkie pliki zostały poprawione.

Stworzyłem Marco, aby dokonać zmian, to się nazywa „Edit”

typy plików są xlsm i skoroszyt i arkusz są chronione hasłem Jak mogę automatycznie uruchomić makro do goto lokalizacji sieciowej i seriami otwórz każdy plik, usuń ochronę, wywołaj makro, a następnie zabezpiecz ponownie plik zamknięcia dokumentu i przejdź do następnego pliku, aż wszystkie zostaną zaktualizowane.

Sub Auto_open_change() 

Dim WrkBook As Workbook 
Dim StrFileName As String 
Dim FileLocnStr As String 
Dim LAARNmeWrkbk As String 

PERNmeWrkbk = ThisWorkbook.Name 
StrFileName = "*.xlsx" 
FileLocnStr = ThisWorkbook.Path 
Workbooks.Open (FileLocnStr & "\" & StrFileName) 
Workbooks(StrFileName).Activate 

With Application.FindFile 
SearchSubFolders = False 
LookIn = "Network location" 
Filename = "*.xlsm" 
If .Execute > 0 Then 
    Debug.Print "There were " & .FoundFiles.Count & " file(s) found." 
    For i = 1 To .FoundFiles.Count 
     WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) 
     WrkBook.Worksheets(1).Select 
     ThisWorkbook.Worksheets(1).Cells(DestinationRange) = WrkBook.Worksheets(1).Cells(SourceRange).Value 
    Next i 
Else 
    Debug.Print "There were no files found." 

End If 

Im udaje się usunąć zabezpieczenie aktualizację pliku i ponowne zabezpieczenie plików w porządku, po prostu nie mogę uzyskać plik z lokalizacji sieciowej.

+0

Czy Twój problem polega na ustawieniu folderu sieciowego, w którym działa kod? A jeśli tak, to - pomyślałbym, że wystarczyłoby proste "Dir" przez ścieżkę do folderu? – brettdj

Odpowiedz

1

Używam programu Excel 07, który nie dopuszcza pliku Application.FindFile, więc nie mogę przetestować tego. Uważam jednak, że może to być spowodowane tym, że musisz Set zmienną Wrkbook, a nie tylko ją przypisać.

Zmień

WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) 

do

Set WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) 

i daj mi znać, jak to okazuje!