Avatar billede kronsj Nybegynder
25. juli 2006 - 10:54 Der er 3 kommentarer

VBA-script åbner automatisk en tom workbook

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.

Hvad / hvorfor åbner denne tomme workbook
Avatar billede supertekst Ekspert
25. juli 2006 - 10:56 #1
Hvordan ser koden ud?
Avatar billede kronsj Nybegynder
25. juli 2006 - 11:44 #2
Set objExcel = New Excel.Application


    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 !
Avatar billede supertekst Ekspert
25. juli 2006 - 13:07 #3
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester