Avatar billede bahne2000 Novice
03. oktober 2007 - 07:41

Excell VBeditor - Loop - find en fejl

Hejsa,

Jeg kan simpelthen ikke gennemskue hvor fejlen gemmer sig. Ideen bag hele scriptet er:  læs et nr i test filen, bruge det nr til en sql forespørgelse og returnere nogle data, gemme excel arket og navngive det ud fra de data, sætte et par celler i status.xls = med nogle celler i arket der lige er gemt og genere en slags overvågning af de specifikke celler på hvert ark der bliver gemt i løkken.

Problemet: befinder sig i nederste del af scriptet, som laver status.xls. hvis man f.eks. er igang med navn23 er alle celler i status arket lig med navn23 data istedet for de forgangne ark's data.

Koden::=>

Range("A5").Select
Y = Selection.Value
Workbooks.Open Filename:= _
        "T:\STATUS.xls"

Workbooks.Open Filename:= _
        "T:\test.xls"
Windows("test.xls").Activate
Antal = Application.WorksheetFunction.CountA(Columns(1)) ' tæl antal celler med indhold i række 1
Debug.Print Antal
Range("A1").Select
X = Selection.Value
Debug.Print X
Windows("skabelon1.dqy.xls").Activate

statuscellenr = 3
kolonne = "A"

i = 0
  Do While i < Antal  ' kør løkke så længe i er under antallet i kolonne A i filen test.xls



    i = i + 1

(SQL Query)
   

    Dim Nr As Variant
    sti = ThisWorkbook.Path & "\"  ' definer sti hvor skabelon skal gemmes som anden fil
    Navn = Range("A1").Value    ' sæt variablen NAVN lig værdien i cellen A1
    Nr = Empty
    Navn = Replace(Navn, "/", "_")    'Erstatter slash med underscore
    Navn = Replace(Navn, ".", "")    'Erstatter punktum med underscore
    Navn = Replace(Navn, ",", "")    'Erstatter komma med underscore
    Navn = Replace(Navn, Chr(34), " ") 'Erstatter gåseøjne med mellemrum
   
    Do Until EksistererFil(sti & Navn & Nr) = False
        Nr = Nr + 1
    Loop
 
   
'gem fil ved hjælp af variabler.
    ActiveWorkbook.SaveAs Filename:= _
                          sti & Navn & Nr, FileFormat:=xlNormal _
                        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
                          CreateBackup:=False

    Status1 = kolonne & statuscellenr
    status2 = kolonne & statuscellenr + 1
    status3 = kolonne & statuscellenr + 2
   
    t = statuscellenr + 3
    status4 = kolonne & t
    Debug.Print status4
   
    fil1 = "='[" & Navn & ".xls]skabelon'!R1C1"
    fil2 = "='[" & Navn & ".xls]skabelon'!R6C2"
    fil3 = "='[" & Navn & ".xls]skabelon'!R9C10"
    fil4 = Navn & Nr & ".xls"
       
    Debug.Print Navn
    Debug.Print fil1
    Debug.Print "fil4 = " & fil4
    Windows("STATUS.xls").Activate
         
    Range(Status1).Select
    ActiveCell.FormulaR1C1 = fil1
    Range(status2).Select
    ActiveCell.FormulaR1C1 = fil2
    Range(status3).Select
    ActiveCell.FormulaR1C1 = fil3
    Range(status4).Select
   
    'ActiveWorkbook.Save
   
    statuscellenr = t + 3
    Debug.Print "statusceller ved slut af løkken = " & statuscellenr
           
    Windows("test.xls").Activate
    ActiveCell.Offset(1, 0).Select
    X = Selection.Value
    Windows(fil4).Activate
   
   
Loop
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
Kurser inden for grundlæggende programmering

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