/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Excel.Application og ActiveCell fejl
Fra : Morten Snedker


Dato : 08-01-04 23:45

Jeg har en VB6-applikation med en knap, som igen indeholder
nedenstående kode.

Programmets formål kort:

1.
Modtag en masse data på Com-porten

2.
Åbn det skrivebeskyttede ark "U:\Excel\Kontrolkort.xls" og indsæt en
masse data i diverse celler.

3.
Forcer afslutning, der får brugeren til at gemme til en ny xls-fil.

OG - det virker faktisk altsammen fint. Ved første gennemløb. Udfører
jeg koden anden gang, så fejler den på linien angivet i koden
herunder, med fejlen

"Run-time error 91: Object variable or With block not set"

Og det lader til at være xloW der er Nothing. Men hvorfor er den det?

'---code begin
On Error GoTo myErr

Dim xlo As excel.Application
Dim xloW As excel.Workbook

Dim myCount As Integer, x As Integer, NewMeasure As Integer
Dim isEven As Boolean

Set xlo = New excel.Application
Set xloW = xlo.Workbooks.Open("u:\excel\kontrolkort.xls")

xloW.Application.Visible = True
xloW.Worksheets(1).Range("G42").Value = Me.Antal_n

' List1.ListIndex = 0

For x = 0 To List1.ListCount - 1
List1.ListIndex = x
If Left(List1.Text, 1) <> "-" Then myCount = myCount + 1
Next x

If myCount Mod Me.Antal_n <> 0 Then
MsgBox "Der er foretaget " & myCount & " målinger. " & _
"Antallet af målinger skal være deleligt med " &
Me.Antal_n & ". Slet overskydende målinger eller foretag " & _
"yderligere målinger for at afslutte", vbExclamation,
"Ugyldig antal målinger"
Exit Sub
End If

xloW.Worksheets(1).Range("B15").Activate
isEven = False

For x = 0 To List1.ListCount - 1
List1.ListIndex = x
If Left(List1.Text, 1) <> "-" Then
With xloW.Worksheets(1)
If NewMeasure = CInt(Me.Antal_n) Then
If isEven = False Then
ActiveCell.Offset(11 - (CInt(Me.Antal_n) - 1),
0).Activate
NewMeasure = 0
isEven = True
Else
ActiveCell.Offset(-(11 + (CInt(Me.Antal_n) +
1)), 1).Activate
NewMeasure = 0
isEven = False
End If
End If

    ' ******** FEJL PÅ NÆSTE LINIE *********
ActiveCell.Value = CSng(Me.List1.Text) ' <------
ActiveCell.Offset(1, 0).Activate
End With
NewMeasure = NewMeasure + 1
End If
Next x


'xlo.Quit

Set xloW = Nothing
Set xlo = Nothing



myExit:
Exit Sub

myErr:
MsgBox Err.Description, vbCritical, "Fejl ved åbning af Excel
regneark"
Resume myExit

'---code end


På forhånd 2000 tak for hjælpen!

XFUT dk.edb.regneark
---
Svar venligst under det citerede
Klip og udelad, hvad du ikke besvarer

 
 
Jens U. K. (09-01-2004)
Kommentar
Fra : Jens U. K.


Dato : 09-01-04 13:20

"Morten Snedker" <morten@nospam_dbconsult.dk> wrote in message
news:almrvv4dpkijsha05qn364bkdgetdlabsd@4ax.com...
[...]
> OG - det virker faktisk altsammen fint. Ved første gennemløb. Udfører
> jeg koden anden gang, så fejler den på linien angivet i koden
> herunder, med fejlen
>
> "Run-time error 91: Object variable or With block not set"
>
> Og det lader til at være xloW der er Nothing. Men hvorfor er den det?
[...]
> Set xloW = xlo.Workbooks.Open("u:\excel\kontrolkort.xls")
Kunne det være her hvor open måske ikke returnerer det du håber på?
Dokumentet er måske stadig låst... andet uforudset?
Mener at f.eks. MS Word stadig har en lås på det originale dokument, selv
om man har brugt gemt som/save as med nyt filnavn. Måske det samme gør sig
gældende her?

/Jens Ulrik

PS: X-fut ikke fulgt, da mit forslag vel er et mere generelt problem og
ikke decideret regnearks-relateret.


Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste