Avatar billede Falentin Seniormester
06. december 2018 - 17:10 Der er 3 kommentarer og
1 løsning

Problem med loop, hvor der ikke er udfyldt i alle celler i EXCEL

Hej, jeg har et script, der kører en kollone igennem. Hvis en celle i kollone er udfyldt, ændrer den navnet på en bestemt fil i en mappe, hvis ikke går den videre til næste celle i kollonen, indtil for-loopen stopper ved 20.

Mit problem er, at den tager de første 3 ikke-kronologiske med, men herefter stopper den med at ændre filnavnet.



Mit script er:

Sub ChangeNamesFilesNotCronologic()

'Denne virker delvist & tager de først 3 ikke kronologiske med

Dim MyPath As String
MyPath = ActiveWorkbook.Path & "\"

Range("F2").Select

r = 2

For i = 1 To 20

On Error Resume Next
'Hvis der er noget i cellen, ændrer filnavn i mappe
If ActiveCell <> "" Then
Name MyPath & Cells(r, 6).Value & ".pdf" As MyPath & Cells(r, 7).Value & ".pdf"
r = r + 1
ActiveCell.Offset(1, 0).Select

'Hvis cellen er tom, går en en kke ned
ElseIf ActiveCell = "" Then
ActiveCell.Offset(1, 0).Select
End If


Next i

End Sub
Avatar billede kim1a Ekspert
06. december 2018 - 20:42 #1
Hvad sker der hvis du sætter end if tidligere og sletter noget:

Sub ChangeNamesFilesNotCronologic()

'Denne virker delvist & tager de først 3 ikke kronologiske med

Dim MyPath As String
MyPath = ActiveWorkbook.Path & "\"

Range("F2").Select

r = 2

For i = 1 To 20

On Error Resume Next
'Hvis der er noget i cellen, ændrer filnavn i mappe
If ActiveCell <> "" Then
Name MyPath & Cells(r, 6).Value & ".pdf" As MyPath & Cells(r, 7).Value & ".pdf"
r = r + 1
End If

ActiveCell.Offset(1, 0).Select

Next i

End Sub

Jeg forstår ikke helt hvad du mener med ikke-kronologiske.

Den kører vel alle 20 rækker igennem?

Findes der en fil for hver af de 20?
Avatar billede Falentin Seniormester
06. december 2018 - 21:38 #2
Nej, virker hjælper ikke på det..

Ja, det jeg mener, er, at der ikke er udfyldt noget i alle cellerne. fx

celle1                    text1

celle2

celle3                    text2
celle4 

celle5                      text3
Avatar billede kim1a Ekspert
06. december 2018 - 22:49 #3
Ah vent, nu kan jeg spotte det:

Sub ChangeNamesFilesNotCronologic()

'Denne virker delvist & tager de først 3 ikke kronologiske med

Dim MyPath As String
MyPath = ActiveWorkbook.Path & "\"

For i = 2 To 20

On Error Resume Next
'Hvis der er noget i cellen, ændrer filnavn i mappe
If ActiveCell <> "" Then
Name MyPath & Cells(i, 6).Value & ".pdf" As MyPath & Cells(i, 7).Value & ".pdf"
End If

Next i

End Sub
Avatar billede Falentin Seniormester
06. december 2018 - 23:56 #4
Cool nu virker det :-) Mange tak.
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



IT-JOB

Metroselskabet og Hovedstadens Letbane

ESDH-administrator med udviklerkompetencer

Unik System Design A/S

Udviklingschef

MAN Energy Solutions

Principal Expert DevOps