Hans Gorter
Gebruiker
- Lid geworden
- 27 okt 2008
- Berichten
- 97
Op onze school worden rapportages gemaakt van leerlingen (in onderstaande code wkbOld met naam sFileOld). De layout verandert nog wel eens (wkbNew met name sFilenew) en nu heb ik een routine geschreven (thisworkbook) die zoveel doet als pak cel A1 uit wkbold en plak die in cel B7 in wkbNew. Tenslotte wordt wkbnew dan bewaard onder de oude naam en klaar is kees: het oude rapport is overgeheveld in de nieuwe layout.
In Thisworkbook staan op rijen in twee kolommen sOldRange en sNewrange
dus in eerste kolom staat A1, twee kolom B7. Uiteraard zijn er verschillende rijen daaronder die met een for next stuk voor stuk worden afgewerkt.
Bij de tweede doorloop (eerste keer werkt wel) , ontstaat Foutmelding 9 tijdens de uitvoering. Het subscript valt buiten het bereik
Op de regel die begint met .Copy.
Wie o wie weet wat de reden is? En vast bedankt voor uw aandacht
For Each objFile In objFolder.Files
sFileOld = sFiledirectory & objFile.Name
For x = 31 To 1000
ThisWorkbook.Activate
If WorksheetFunction.Trim(Cells(x, 3).Value) = "" Then
x = 1000
Else
sOldrange = Cells(x, 3).Value
sNewrange = Cells(x, 4).Value
If wkbNew Is Nothing Then
Set wkbNew = Workbooks.Open(Filename:=sFileNew, UpdateLinks:=False, ReadOnly:=False)
Else
Set wkbNew = Workbooks(sFileNew)
wkbNew.Activate
End If
If wkbOld Is Nothing Then
Set wkbOld = Workbooks.Open(Filename:=sFileOld, UpdateLinks:=True, ReadOnly:=True)
Else
Set wkbOld = Workbooks(sFileOld)
wkbOld.Activate
End If
With wkbOld.Worksheets(1).Range(sOldrange)
.Copy wkbNew.Worksheets(1).Range(sNewrange) 'hier ontstaat fout bij 2e doorloop
End With
End If
Next
In Thisworkbook staan op rijen in twee kolommen sOldRange en sNewrange
dus in eerste kolom staat A1, twee kolom B7. Uiteraard zijn er verschillende rijen daaronder die met een for next stuk voor stuk worden afgewerkt.
Bij de tweede doorloop (eerste keer werkt wel) , ontstaat Foutmelding 9 tijdens de uitvoering. Het subscript valt buiten het bereik
Op de regel die begint met .Copy.
Wie o wie weet wat de reden is? En vast bedankt voor uw aandacht
For Each objFile In objFolder.Files
sFileOld = sFiledirectory & objFile.Name
For x = 31 To 1000
ThisWorkbook.Activate
If WorksheetFunction.Trim(Cells(x, 3).Value) = "" Then
x = 1000
Else
sOldrange = Cells(x, 3).Value
sNewrange = Cells(x, 4).Value
If wkbNew Is Nothing Then
Set wkbNew = Workbooks.Open(Filename:=sFileNew, UpdateLinks:=False, ReadOnly:=False)
Else
Set wkbNew = Workbooks(sFileNew)
wkbNew.Activate
End If
If wkbOld Is Nothing Then
Set wkbOld = Workbooks.Open(Filename:=sFileOld, UpdateLinks:=True, ReadOnly:=True)
Else
Set wkbOld = Workbooks(sFileOld)
wkbOld.Activate
End If
With wkbOld.Worksheets(1).Range(sOldrange)
.Copy wkbNew.Worksheets(1).Range(sNewrange) 'hier ontstaat fout bij 2e doorloop
End With
End If
Next