Forfatter |
Emne Søg Emne funktioner
|
zpjj
Sølv bruger
Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
|
Emne: Forskel på EXCEL 2013 & 2016 Sendt: 06.Jan.2019 kl. 18:45 |
Hej og Godt Nytår Jeg har en macro der kører fint i Excel 2013 men ikke kører i Excel 2016 Den går fast i linien: Set myfile = appxl.Windows(nFilename) Kommer med fejlmeddelelse: Run-time error 9 Subscipt out of range Er der nogen som ved hvad der er galt ???
|
Med venlig hilsen Peter Juul
Jeg bruger EXCEL 2010
|
|
|
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5470
|
Sendt: 07.Jan.2019 kl. 18:25 |
Hvordan har du defineret din objekt-variabel?
Noget kunne tyde på, at den er tom...
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
zpjj
Sølv bruger
Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
|
Sendt: 07.Jan.2019 kl. 18:42 |
Den er defineret således: Dim appxl As Object Set appxl = CreateObject("Excel.Application") Dim myfile As Window Dim currentSheet As Worksheet Dim Lastrow As Double Dim sourceFileName As String Dim X1 As String Dim X2 As String Dim nPath As Variant Dim nFilename As String Det der undre mig er, at den kører uden problemer i Excel 2013 men ikke i Excel 2016
|
Med venlig hilsen Peter Juul
Jeg bruger EXCEL 2010
|
|
Kurt Kubik
Sølv bruger
Medlem: 18.Feb.2012
Status: Offline
Point: 209
|
Sendt: 11.Jan.2019 kl. 21:15 |
Du er vel ikke skiftet til 64bit Office 2016?
|
Hej fra Lars (Kurt Kubik)
|
|
zpjj
Sølv bruger
Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
|
Sendt: 12.Jan.2019 kl. 05:59 |
Hej Kurt Nej, men ellers et godt bud.
|
Med venlig hilsen Peter Juul
Jeg bruger EXCEL 2010
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5470
|
Sendt: 13.Jan.2019 kl. 20:11 |
Din objekt variabel er erklæret rigtigt nok
Altså er det indholdet af din 'nFilename' variabel, der er noget i vejen med. Har du prøvet, aat vise indholdet af variablen, med en...
...lige umiddelbart inden linjen:
Set myfile = appxl.Windows(nFilename) |
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
zpjj
Sølv bruger
Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
|
Sendt: 14.Jan.2019 kl. 13:48 |
Hej EXCELGAARD Jeg var lige inde og kigge på din hjemmeside mht. version nr. Jeg har lavet nedenstående, og det virker 99% uden problemer. Har fri nu i 3 uger, så kommer jeg tilbage og kigger lidt mere ind i det. If Val(Application.Version) < 14.5 Then Set myfile = appxl.Windows(nFilename) Else Set myfile = appxl.Windows(nFilename & ".xlsx") End If Godt tip med MsgBox Tak
|
Med venlig hilsen Peter Juul
Jeg bruger EXCEL 2010
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5470
|
Sendt: 14.Jan.2019 kl. 15:22 |
Er du fræk, så kan dine 5 linjer skæres ned til 2:
Set myfile = appxl.Windows(nFilename)If Typename(appxl) <> "Application" Then Set myfile = appxl.Windows(nFilename & ".xlsx") |
Og, er du rigtig, rigtig fræk, så kan det gøres på 1 linje:
If Val(Application.Version) < 15 Then Set myfile = appxl.Windows(nFilename) Else Set myfile = appxl.Windows(nFilename & ".xlsx") |
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
zpjj
Sølv bruger
Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
|
Sendt: 14.Jan.2019 kl. 15:58 |
Tak for tippet, det skal prøves når jeg kommer på "Søen" igen
|
Med venlig hilsen Peter Juul
Jeg bruger EXCEL 2010
|
|