Når jeg kører et vbascript i mit Excel-ark, bliver der automatisk åbnet en tom kopi workbook. Dette sker både hvis jeg kører scriptet direkte fra den enkelte sheet eller fra vba-editoren. I scriptet bliver der bl.a. åbnet en "FileDialog" box (til at vælge en mappe), men jeg tvivler på at denne selv åbner et tomt ark.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
With objExcel.FileDialog(msoFileDialogFolderPicker) .Title = "Select script-folder" .ButtonName = "Select" .Show If .SelectedItems.Count > 0 Then sFoldername = .SelectedItems(1) End If End With
If Len(sFoldername) > 0 Then Set fso = CreateObject("Scripting.FileSystemObject") i = 1 Set folder = fso.GetFolder(sFoldername) Set Files = folder.Files For Each folderidx In Files sFilename = folderidx.Name If UCase(Right(sFilename, 3)) = "BAT" Then asFilename = Split(sFilename, ".") Set f = fso.opentextfile(folder.Path & "\" & sFilename) While f.AtEndOfStream <> True s = f.readline s = Replace(s, "net use ", "", compare:=vbTextCompare) ss = Split(s, "\\") If UBound(ss) > 0 Then If Len(asFilename(0)) > 0 Then ActiveSheet.Cells(i, 1).Value = asFilename(0) ActiveSheet.Cells(i, 2).Value = ss(0) ActiveSheet.Cells(i, 3).Value = "\\" & ss(1) End If End If i = i + 1 Wend End If Next End If
- erklæringer af objecter og variabler er skraldet fra....men den virker !
Har ændret lidt på den indledende kode, for overhovedet at kunne steppe ind i programmet.
Så vidt jeg kan se ligger problemet her - da det er her det aktive regneark udfyldes - d.v.s. at linierne i .BAT-filen ikke opfylder betingelserne:
If UBound(ss) > 0 Then If Len(asFilename(0)) > 0 Then ActiveSheet.Cells(i, 1).Value = asFilename(0) ActiveSheet.Cells(i, 2).Value = ss(0) ActiveSheet.Cells(i, 3).Value = "\\" & ss(1) End If
Min Test-version
Sub test1() Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFolderPicker)
Dim vrtSelectedItem As Variant
With fd .Title = "Select script-folder" .ButtonName = "Select" .Show If .SelectedItems.Count > 0 Then sFoldername = .SelectedItems(1) End If
End With
If Len(sFoldername) > 0 Then Set fso = CreateObject("Scripting.FileSystemObject") i = 1 Set folder = fso.GetFolder(sFoldername) Set Files = folder.Files For Each folderidx In Files sFilename = folderidx.Name If UCase(Right(sFilename, 3)) = "BAT" Then asFilename = Split(sFilename, ".") Set f = fso.opentextfile(folder.Path & "\" & sFilename) While f.AtEndOfStream <> True s = f.readline s = Replace(s, "net use ", "", compare:=vbTextCompare) ss = Split(s, "\\") If UBound(ss) > 0 Then If Len(asFilename(0)) > 0 Then ActiveSheet.Cells(i, 1).Value = asFilename(0) ActiveSheet.Cells(i, 2).Value = ss(0) ActiveSheet.Cells(i, 3).Value = "\\" & ss(1) End If End If i = i + 1 Wend End If Next End If
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.