< návrat zpět

MS Excel


Téma: VBA - DIR vrací prázdnou hodnotu rss

Zaslal/a 13.6.2019 16:33

Dobrý den,

mám makro, které mimo jiné načte vybranou složku a postupně otevře všechny .xlsx soubory, které ve složce jsou. U mě to funguje správně, ale na druhém počítači ne. Podařilo se mi vysledovat, že nefunguje funkce DIR - místo názvů souborů to vrací prázdnou hodnotu. Netušíte prosím čím to může být(nějaká chybící knihovna?), případně co by se dalo použít místo této funkce?

Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker) 'Retrieve Target Folder Path From User

With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With

NextCode: 'In Case of Cancel
myPath = myPath
If myPath = "" Then GoTo ResetSettings

myExtension = "*.xlsx" 'Target File Extension (must include wildcard "*")
myFile = Dir(myPath & myExtension) 'Target Path with Ending Extention

'Loop through each Excel file in folder
Do While myFile <> ""


*** opakující se práce s každým souborem

myFile = Dir 'Get next file name
Loop

děkuji
Marek

Zaslat odpověď >

#043517
avatar
Zdravim. Zkontrolujte ci na oboch PC pouzivate rovnaku verziu Office. Riesil som podobny problem. U mna vsetko fungovalo a druhom PC nie. Nakoniec to vyriesila obycajna aktualizacia verzie Excelu.citovat
#043531
elninoslov
Určite sa jedná na oboch PC o XLSX súbory ? Nie sú na tom druhom náhodou XLS alebo XLSM súbory ? Ak áno potom, musí byť maska "*.xls*" a nie "*.xlsx".

PS: Používajte deklarovanie premenných.

Sub pokus()
Dim FldrPicker As FileDialog, myPath As String, myFile As String

Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker) 'Retrieve Target Folder Path From User

With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
myPath = .SelectedItems(1)
myPath = myPath & IIf(Right$(myPath, 1) <> "\", "\", "")
End With

myFile = Dir(myPath & "*.xls*", vbNormal) 'Target Path with Ending Extention

'Loop through each Excel file in folder
Do While myFile <> ""

'*** opakující se práce s každým souborem
ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = myFile

myFile = Dir() 'Get next file name
Loop
End Sub
Příloha: zip43531_subory.zip (16kB, staženo 14x)
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje