Denne procedurer giver fejl, men jeg ved ikke hvorfor: Sub Form_Load() Dim xName As String Dim objXLS As Excel.Application xName = objXLS.ActiveWorkbook.ActiveSheet.Name msgbox xName end sub
Jeg får fejl 91: object variable or with block variable not set
Supertekst : Det er en rigtig måde at gøre tingene på, MEN... ved at definere objXLS som et Udefineret Object i stedet for et Excel.Application-object, har man ikke den contekst-sensitive hjælp med. Createobject er gerne den måde man gør det på, når man programmerer i ASP. Og du har ganske ret i at der der mangler en SET-kommando
thomasbm: Du mangler at instatiere dit objXLS object med en set-kommando :
Sub Form_Load() Dim xName As String Dim objXLS As Excel.Application '************** SET objXLS = New Excel.Application '************** ' En anden god programmerings-skik er også at definere alle de objekter du benytter, dvs. i dit eksempel et objekt af type Excel.Worksheet og et Excel.Workbook objekt.
Dim objWB as Excel.Workbook Dim objWS as Excel.Worksheet
Set objWB=objXLS.ActiveWorkbook Set objWS=objWB.ActiveSheet xName=objWS.Name msgbox xName
End Sub
Det kan godt være at det virker lidt 'Overkill' for at skrive navne på det aktive ark i den aktive fil, men jeg går ikke udfra, at det er din hensigt med programmet.
Det er altid en god ide at definere alle sine objekter, af flere årsager, bl. a. har man fuldstændig styr på, hvad et objekt er, om det er levende, og man har helt styr på, hvornår det bliver fjernet fra hukommelsen igen.
Jeg håber du kan bruge disse råd.
Synes godt om
Ny brugerNybegynder
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.