Avatar billede s_h_m Nybegynder
04. februar 2004 - 11:08 Der er 12 kommentarer og
1 løsning

Makro lukker excel under kørsel

Jeg har fundet en makro, jeg måske kan bruge når der foretages et par rettelser.
Problemet er, at makroen genererer en fejl og lukker excel ned.
Hvis jeg stepper gennem koden trin for trin kører den ok, men når den køres fra arket, lukker den, hvorfor?
Jeg bruger xl97, hvis det betyder noget.
Koden er som følger:

Sub ShowTheForm()
UserForm1.Show
End Sub
Sub SortAndRemoveDupes()
Dim rListSort As Range, rOldList As Range
Dim strRowSource As String

'Clear Hidden sheet Column A ready for list
  Sheet1.Range("A1", Sheet1.Range("A65536").End(xlUp)).Clear
 

'Set range variable to list we want
  Set rOldList = Sheet2.Range("A1", Sheet2.Range("A65536").End(xlUp))

'Use AdvancedFilter to copy the list to Column A _
  of the hidden sheet and remove all dupes
  rOldList.AdvancedFilter Action:=xlFilterCopy, _
              CopyToRange:=Sheet1.Cells(1, 1), Unique:=True
             
'Set range variable to the new non dupe list
  Set rListSort = Sheet1.Range("A1", Sheet1.Range("A65536").End(xlUp))

    With rListSort
            'Sort the new non dupe list
            .Sort Key1:=.Cells(2, 1), Order1:=xlAscending, Header:=xlYes, _
                  OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End With
   
    'Parse the address of the sorted unique items
          strRowSource = Sheet1.Name & "!" & Sheet1.Range _
          ("A2", Sheet1.Range("A65536").End(xlUp)).Address
 
    Sheet1.Range("A1") = "New Sorted Unique List"
  With UserForm1.ListBox1
      'Clear old ListBox RowSource
      .RowSource = vbNullString
      'Parse new one
      .RowSource = strRowSource
  End With
 
End Sub
Avatar billede s_h_m Nybegynder
04. februar 2004 - 13:17 #1
Undskyld - jeg fik ikke det hele med, der findes også en userform med en listboks der indeholder følgende kode:

Private Sub UserForm_Initialize()
Run "SortAndRemoveDupes"
End Sub

Private Sub UserForm_Terminate()
Sheet1.Columns(1).Clear
End Sub


Det ser ud til, at fejlen opstår i den sidste del af koden i SortAndRemoveDupes().
Det går galt omkring:  .Rowsource = vbNullString
04. februar 2004 - 14:51 #2
prøv at ændre vbNullString til ""
04. februar 2004 - 14:52 #3
eller bare fjern .RowSource = vbNullString hvis .RowSource = "" ikke virker
Avatar billede s_h_m Nybegynder
04. februar 2004 - 15:14 #4
Har nu prøvet begge dele, det hjælper desværre ikke, excel lukker stadig.

Hvis jeg sletter hele den sidste del, fra 'Parse the address of the sorted unique items,
virker det fint, bortset fra at den sorterede liste ikke skrives i listboksen.
Kan det være noget med strRowSource og den Range den skal finde?
04. februar 2004 - 15:36 #5
Prøv lige at udskift med denne linie:

strRowSource = Sheet1.Name & "!" & _
    Range("A2", Sheet1.Range("A65536").End(xlUp)).Address
Avatar billede s_h_m Nybegynder
04. februar 2004 - 18:33 #6
Jeg sidder p.t. hjemme, og her virker det (Excel XP).
Måske er det en bug i Excel97.
Men jeg vil prøve dit forslag i morgen på min arbejds-pc.
04. februar 2004 - 19:32 #7
ok
Avatar billede s_h_m Nybegynder
05. februar 2004 - 09:17 #8
Så har jeg prøvet at skifte linien, men det hjælper desværre ikke, den kommer med en fejlmeddelelse; Range for objektet...
Jeg har prøvet på både DK og US version af Excel97, og den lukker på begge, så mon ikke det er en fejl i Excel97, når den virker upåklagelig i Excel2002.

Hvis det er bestemmelsen af Range der er problemet, kan man så bruge en anden funktion i stedet for End(xlUp), måske noget med at vælge ikke-tomme celler i kolonnen?
05. februar 2004 - 09:24 #9
strRowSource = Sheet1.Name & "!" & Sheet1.Range("A2", _
Sheet1.Range("A2:A65536").SpecialCells(xlCellTypeLastCell)).Address
Avatar billede s_h_m Nybegynder
05. februar 2004 - 10:26 #10
Perfekt!!  :o)
Nu virker det uden problemer.
Mange tak for hjælpen, smid lige et svar.
Jeg fordobler lige point, for det var vist ikke et nemt spørgsmål, i hvert fald ikke herfra hvor jeg sidder :o)
05. februar 2004 - 10:27 #11
:-)
Avatar billede s_h_m Nybegynder
05. februar 2004 - 10:37 #12
Jeg kan ikke lige finde ud af at fordoble point, plejer der ikke at være et felt hvor man kan give flere?
Nå men så opretter jeg lige ét til.
Avatar billede Chewie Novice
05. februar 2004 - 11:13 #13
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