Avatar billede tt2002 Nybegynder
15. september 2005 - 17:09 Der er 7 kommentarer og
1 løsning

sortere i en markeret kolonne/række

Jeg bruger følgende kode:

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
   
    Set xlArk = xlApp.ActiveWorkbook.Worksheets(1)
    Set xlBook = xlApp.Workbooks.Open("c:\FO\data.xls")

    xlApp.Visible = False
   
    xlApp.Sheets.Add
     
    If privat = True Then
        faerdig = False
        antal = 1
        Do Until faerdig = True
        antal = antal + 1
        navn = xlApp.Sheets("kunderegister-privat").Cells(antal, 1) & ", " & xlApp.Sheets("kunderegister-privat").Cells(antal, 2)
        If navn = ", " Then
            faerdig = True
        End If
        xlApp.Sheets("Ark1").Cells(antal - 1, 1) = navn
        Loop
--->    xlApp.Range(Cells(1, 1), Cells(3, 1)).Sort Key1:=Range("A1"), Order1:=xlAscending
        For tal = 1 To 4 Step 1
        formfindkunde.kunder.AddItem (xlApp.Sheets("Ark1").Cells(tal, 1))
        Next tal
    End If
       
   
    Set xlArk = Nothing
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing

.... men bliver ved med at få fejl ved den markerede (--->) linie. Hvad gør jeg forkert?
Avatar billede kabbak Professor
15. september 2005 - 17:17 #1
--->    xlApp.Sheets("Ark1")..Range(Cells(1, 1), Cells(3, 1)).Sort Key1:=Range("A1"), Order1:=xlAscending

manglede du ikke arknavnet
Avatar billede kabbak Professor
15. september 2005 - 17:18 #2
xlApp.Sheets("Ark1").Range(Cells(1, 1), Cells(3, 1)).Sort Key1:=Range("A1"), Order1:=xlAscending

der var et punktum formeget
Avatar billede tt2002 Nybegynder
15. september 2005 - 17:21 #3
nej... det gør desværre ikke nogen forskel.... stadig samme fejl:

Run-time error '1004': Application-defined or object-defined error
Avatar billede bak Forsker
15. september 2005 - 20:40 #4
xlApp.Sheets("Ark1").Range(Cells(1, 1), Cells(3, 1)).Sort Key1:=xlApp.Sheets("Ark1").Range("A1"), Order1:=xlAscending
Avatar billede bak Forsker
15. september 2005 - 21:47 #5
Prøv lige at forklare hvad det er du ønsker at lave, din kode er ikke entydig.

her er koden som jeg tror den skal se ud, hvis du ønsker at tage alle data i de to første kolonner i kunderegister-arket, sammenføje disse, indsætte i et nyt ark for sortering og efter sortering fylde dem i en listbox

Dim xlApp As Object
  Dim xlBook As Object
  Dim xlKundeark As Object
  Dim xlNytArk As Object
  Dim antal As Long, tal As Long, navn As String, privat As Boolean, faerdig As Boolean
  Set xlApp = CreateObject("Excel.Application")
  xlApp.Visible = False

  Set xlBook = xlApp.Workbooks.Open("c:\FO\data.xls")
  Set xlNytArk = xlBook.Sheets.Add
  Set xlKundeark = xlBook.Sheets("kunderegister-privat")
 
  If privat = True Then
      faerdig = False
      antal = 1
      Do Until faerdig = True
        antal = antal + 1
        navn = xlKundeark.Cells(antal, 1) & ", " & xlKundeark.Cells(antal, 2)
        If navn = ", " Then faerdig = True
        xlNytArk.Cells(antal - 1, 1) = navn
      Loop
      With xlNytArk
        .Range(.Cells(1, 1), .Cells(antal - 1, 1)).Sort Key1:=.Range("A1"), Order1:=xlAscending
      End With
      For tal = 1 To antal - 1
        formfindkunde.kunder.AddItem (xlNytArk.Cells(tal, 1))
      Next tal
  End If
  xlBook.Close savechanges:=False

  Set xlNytArk = Nothing
  Set xlKundeark = Nothing
  Set xlBook = Nothing
  xlApp.Quit
  Set xlApp = Nothing
Avatar billede tt2002 Nybegynder
16. september 2005 - 18:42 #6
du har ret.... det er det jeg vil....

jeg tjekker lige koden og vender tilbage senere...
Avatar billede tt2002 Nybegynder
17. september 2005 - 14:06 #7
det virker perfekt... smider du er svar?
Avatar billede bak Forsker
17. september 2005 - 14:59 #8
ok :-)
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