VBA Excel: Kopier sheet. Kode fejler første gang efter Excel genstartes, men virker herefter.
Skal noget så simpelt som at kopiere et sheet fra et regneark til et andet.Har en procedure der åbner master-filen (xls-filen der skal kopieres fra), kopierer et bestemt sheet over i mit aktuelle fil, og lukker masterarket igen. Men jeg får en subscript out of range når jeg kører nedenstående kode, fordi koden lukker mit ergneark, derkopieres TIL. Men kun første gang - herefter virker det.Det fatter jeg simpelthen ikke:
Først et par konstanter:
Const MasterFilePath = "C:\" '<-- Sti til masterregneark
Const MasterFileName = "Toolbox.xls" '<-- Filnavn på masterregneark
Min sub:
Sub copySheetFromMaster(SheetnameToCopy)
Dim WBName As String
Dim MasterFilenameAndPath As String
MasterFilenameAndPath = MasterFilePath & MasterFileName
WBName = ActiveWorkbook.Name
Workbooks.Open Filename:=MasterFilenameAndPath, ReadOnly:=True
Sheets(SheetnameToCopy).Select
Sheets(SheetnameToCopy).Copy BeFore:=Workbooks(WBName).Sheets(1) '<FEJL: 9. Subscript out of range da den lukker filen WBName
Windows(MasterFileName).Activate
ActiveWindow.Close False
Windows(WBName).Activate
Sheets(SheetnameToCopy).Activate
End Sub
ALTSÅ:
Fejlen er, at når jeg starter excel med en tom fil, og kører macroen får jeg fejlen. Fejlen opstår fordi den tomme xls-fil der skal kopieres TIL bliver lukket.
åbner jeg så en ny tom fil, og kører macroen igen, virker alt perfekt.
Men lukker jeg excel, starter det forfra - første kørsel af macroen giver fejl. Herefter virker alt. Hvorfor lukker den book1 (eller hvad mit regneark der kopieres TIL nu tilfældigvis hedder)
