Avatar billede henrikn Nybegynder
10. januar 2005 - 13:49 Der er 8 kommentarer og
1 løsning

VBA : nyt object

Jeg vil gerne lave en function der returnerer et object med forskellige værdier. Jeg har prøvet nedenstående men jeg får en fejl som objectet ikke er instantieret .. Anyone ??

Public Function CallWSDurationPercentages(portId, dato, durationFactor)

    Dim obj As Object
   
    obj.field1 = Sheets("WebQuery").Range("field1")
    obj.field2 = Sheets("WebQuery").Range("field2")
    obj.field3 = Sheets("WebQuery").Range("field3")
    obj.field4 = Sheets("WebQuery").Range("field4")
    obj.field5 = Sheets("WebQuery").Range("field5")
   
    obj.value1 = Sheets("WebQuery").Range("value1")
    obj.Value2 = Sheets("WebQuery").Range("value2")
    obj.value3 = Sheets("WebQuery").Range("value3")
    obj.value4 = Sheets("WebQuery").Range("value4")
    obj.value5 = Sheets("WebQuery").Range("value5")
   
    CallWSDurationPercentages = obj

End Function
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 13:51 #1
prøv med: Dim obj as Variant
Avatar billede henrikn Nybegynder
10. januar 2005 - 13:53 #2
Den giver mig en "Object Required"
Avatar billede rbj_fp Nybegynder
10. januar 2005 - 13:54 #3
okey...
Dim obj As new Object kunne være en mulighed
Avatar billede henrikn Nybegynder
10. januar 2005 - 14:05 #4
"Dim obj As New Object" giver mig en "Syntax error" :(
Avatar billede martin_moth Mester
11. januar 2005 - 08:41 #5
Du dimmer obj som et "Object" - men det har jo næppe en property der hedder "field1".

Du skal nok være mere specifik, og vælge en bestemt objekt type, hvis du vil gøre som du vil.

Jeg gætter på at du arbejder i Excel?

Hvad med at skrive :

Dim objR As Range
Dim strVal As String 'Hvis det da er string værdier....

Og så skal det jo også give mening at skrive "WebQuery" og "field1", "fieldt2", ... "value1", "value2", ...
Avatar billede henrikn Nybegynder
11. januar 2005 - 09:07 #6
Du har gættet rigtigt med excellen :)

Jeg har måtte lave en mindre pæn løsning, hvor jeg hentede værdierne direkte fra det andet ark.

Hvis man ikke kan lave sin egen datatype i VBA, må en anden løsning og mere bæsværlig løsning være at lave en com klasse og så instantiere er object af den type i VBA.

Anyways .. takker jeg for hjælpen :)
Avatar billede martin_moth Mester
11. januar 2005 - 11:51 #7
Du kan GODT lave din egen datatype i VBA excel:

Public Type Mad
  Forret As String
  Dessert As String
  Karakter As Byte
End Type

Private Sub test()
  Dim Tirsdagsmad As Mad
  Tirsdagsmad.Dessert = "Budding"
  Tirsdagsmad.Forret = "suppe"
  Tirsdagsmad.Karakter = 5
  MsgBox "Forreten er : " & Tirsdagsmad.Forret
End Sub
Avatar billede martin_moth Mester
26. januar 2005 - 12:45 #8
Halooo?
Avatar billede henrikn Nybegynder
26. januar 2005 - 13:35 #9
Det spiller jo bare en milion :) Thanx
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