Avatar billede fagpoler Novice
31. juli 2005 - 12:56 Der er 12 kommentarer og
1 løsning

Spring fra synlig række til synlig i Excel via Makro

Hvis man forestiller sig at række 1 + 100 + 2500 er synlig, og alle andre rækker er skjult, så kan man hvis man står på række 1 springe direkte til række 100 og dernæst til række 2500, med piltasten ned. Men kan man også det med en makro, altså kun springe fra SYNLIG række til SYNLIG række, også hvis der varieret antal skjulte rækker.
Avatar billede brynil Nybegynder
31. juli 2005 - 13:21 #1
Du kan undersøge om en række er skjult med:

If Rows(i & ":" & i).Hidden = True Then ...
Avatar billede fagpoler Novice
31. juli 2005 - 13:29 #2
Jeg har prøvet med koden
Sub prove()
If Rows(i & ":" & i).Hidden = True Then
MsgBox "ikke skjult"
End If
End Sub
men det virker ikke
Avatar billede brynil Nybegynder
31. juli 2005 - 13:33 #3
Sub prove()
Dim i as long

For i = 1 to 10000
  If Rows(i & ":" & i).Hidden = True Then
    MsgBox "SKJULT"
  End If
Next i
End Sub
Avatar billede brynil Nybegynder
31. juli 2005 - 13:35 #4
Skriv istedet:

    MsgBox "Række " & i & " er SKJULT"

så får du at vide hvilken række det er.
Avatar billede fagpoler Novice
31. juli 2005 - 13:44 #5
Tusind tak jeg tro jeg kan bruge det her.
Hvis du ligger et svar får du dine point
Avatar billede brynil Nybegynder
31. juli 2005 - 13:50 #6
Hvis du kun har skjult enkelte rækker, fx som du selv skriver og ikke rækkerne 5,6 og 7 kan du bruge denne til at gå til den efterfølgende synlige celle:

Sub Prøve2()
Dim i As Long

For i = 1 To 10000
  If Rows(i & ":" & i).Hidden = True Then
    Cells(i + 1, 1).Select
    Exit For
  End If
Next i
End Sub

Har du imiddlertid flere rækker efter hinanden der er skjulte, må du tage højde for at skulle passere disse før du selecter.

Jeg har en fornemmelse af, at der findes en enklere metode, men har ikke kunnet finde den, endnu da!
Avatar billede fagpoler Novice
31. juli 2005 - 13:54 #7
Tusind tak jeg prøver at arbejde med det.
Avatar billede brynil Nybegynder
31. juli 2005 - 14:00 #8
Prøv at lege lidt videre med denne:

Dim i As Long

For i = ActiveCell.Row To 10000
  If Rows(i & ":" & i).Hidden = True Then
    Do Until Rows(i & ":" & i).Hidden = False
        i = i + 1
    Loop
    Cells(i, 1).Select
    Exit For
  End If
Next i
Avatar billede fagpoler Novice
31. juli 2005 - 14:06 #9
Det var lige det jeg har brug for, men kan man også springe baglæns?
Avatar billede brynil Nybegynder
31. juli 2005 - 14:10 #10
Så'n sku' det ku' gøres:

For i = ActiveCell.Row To 1 Step -1
  If Rows(i & ":" & i).Hidden = True Then
    Do Until Rows(i & ":" & i).Hidden = False
        i = i - 1
    Loop
    Cells(i, 1).Select
    Exit For
  End If
Next i
Avatar billede fagpoler Novice
31. juli 2005 - 14:14 #11
Tusind tak det virker fint
Avatar billede brynil Nybegynder
31. juli 2005 - 14:35 #12
Og sådan:

Dim Rng As Range
Set Rng = ActiveCell
Do
Set Rng = Rng(2, 1)
Rng.Select
Loop Until Rng.EntireRow.Hidden = False

og baglæns:

Dim Rng As Range
Set Rng = ActiveCell
Do
Set Rng = Rng(0, 1)
Rng.Select
Loop Until Rng.EntireRow.Hidden = False
Avatar billede brynil Nybegynder
31. juli 2005 - 14:37 #13
Tak for point :))
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