Avatar billede thomasbm Nybegynder
06. februar 2007 - 16:45 Der er 2 kommentarer

Adgang til åbent excel ark fra vb

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

Er der nogen der kan se hvorfor?
Avatar billede supertekst Ekspert
06. februar 2007 - 16:58 #1
dim objXLS as object
set objXLS = createobject("Excel.Application")

with objXLS
  .workbooks.open("Filnavn.xls")
  xName = .activesheet.name
end with
Avatar billede xelor Nybegynder
16. februar 2007 - 21:41 #2
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.
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