Avatar billede martin_moth Mester
20. august 2009 - 22:56 Der er 1 kommentar og
1 løsning

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)
Avatar billede martin_moth Mester
20. august 2009 - 23:08 #1
tror måske jeg selv har fundet fejlen...
Avatar billede martin_moth Mester
20. august 2009 - 23:10 #2
tvinger brugeren til at gemme workbook der skal kopieres til først - så spiller det.
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