|
| sub or function not defined...? Fra : Robert Larsen |
Dato : 20-11-04 20:18 |
|
Hej i gruppen.
Sidder og er ved at lave en program, som egentlig vilder mig nogle
problemer. Men i kan helt sikkert hjælpe mig...
Problemet er at jeg har en rutine, som skal ( Splitte ) en tekst streng op.
Til det har jeg fundet en Splitter function på nettet, som så ligger i
modulet. Sådan ser den ud.:::
(Module)
Public Function Splitter(SplitString As String, SplitLetter As String) As
Variant
ReDim SplitArray(1 To 1) As Variant
Dim TempLetter As String
Dim TempSplit As String
Dim i As Integer
Dim x As Integer
Dim StartPos As Integer
SplitString = SplitString & SplitLetter
For i = 1 To Len(SplitString)
TempLetter = Mid(SplitString, i, Len(SplitLetter))
If TempLetter = SplitLetter Then
TempSplit = Mid(SplitString, (StartPos + 1), (i - StartPos) - 1)
If TempSplit <> "" Then
x = x + 1
ReDim Preserve SplitArray(1 To x) As Variant
SplitArray(x) = TempSplit
End If
StartPos = i
End If
Next i
Splitter = SplitArray
End Function
(Module Slut)
For så at kunne bruge det skal man kalde.
splitreturn = Splitter("Tekst,Tekst1,Tekst2, OSV, ",")
Hvor splitreturn er.
Dim SplitterReturn As Variant
Det virker i og for sig godt nok. Problemet er at når jeg har splittet en
tekst op og skal have fjernet mellemrummet, så gjorde jeg sådan...
splitreturn(3) = Replace(splitreturn(3), Chr(34), "")
splitreturn(4) = Replace(splitreturn(4), Chr(34), "")
splitreturn(5) = Replace(splitreturn(5), Chr(34), "")
splitreturn(6) = Replace(splitreturn(6), Chr(34), "")
splitreturn(7) = Replace(splitreturn(7), Chr(34), "")
splitreturn(8) = Replace(splitreturn(8), Chr(34), "")
splitreturn(9) = Replace(splitreturn(9), Chr(34), "")
splitreturn(10) = Replace(splitreturn(10), Chr(34), "")
Det virker godt nok, så længe at det forgår i Form_Load.
For at det skulle gøres lidt enkelt, vil jeg gerne have det i en SUB
function for sig selv. Jeg har så gjort sådan.
Public Sub SplitReplace(FraNum As Integer, TilNum As Integer) ' FraNum kan
være 3 Og TilNum kan være 10
Dim Taeller As Integer
For Taeller = FraNum To TilNum
splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34), "")
^^^^^^^^
Next Taeller
End Sub
Men når jeg så prøver at køre det får jeg overnævnt fejl, på Splitreturn -
Se pile.
Håber at der er nogle der kan hjælpe, for jeg har set mig blind på det.:(
Mvh
Robert Larsen
| |
preben nielsen (21-11-2004)
| Kommentar Fra : preben nielsen |
Dato : 21-11-04 08:32 |
|
"Robert Larsen" <robert@larsen.FJERNtdcadsl.dk> skrev i en
meddelelse news:419f9877$0$295$edfadb0f@dread12.news.tele.dk...
> Hej i gruppen.
>
> Sidder og er ved at lave en program, som egentlig vilder mig
> nogle
> problemer. Men i kan helt sikkert hjælpe mig...
>
> Problemet er at jeg har en rutine, som skal ( Splitte ) en tekst
> streng op.
> Til det har jeg fundet en Splitter function på nettet, som så
> ligger i
> modulet. Sådan ser den ud.:::
Du bruger "Option Explicit" som første instruktion i ALLE moduler,
forms, classes ? Gør du ?
Du skriver:
>Dim SplitterReturn As Variant
Du skriver:
> splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34),
> "")
Hvor er (funktionen) splitreturn erklæret henne lol
Bruger du VB5 eller ældre siden du ikke bruger den indbyggede
Split() funktion ?
> Håber at der er nogle der kan hjælpe, for jeg har set mig blind
> på det.:(
Oh man...... :D
--
/\ preben nielsen
\/\ prel@post.tele.dk
| |
Robert Larsen (25-11-2004)
| Kommentar Fra : Robert Larsen |
Dato : 25-11-04 12:40 |
|
Beklager min lange svar...:)
> Du bruger "Option Explicit" som første instruktion i ALLE moduler,
> forms, classes ? Gør du ?
Ja...:)
> Du skriver:
> >Dim SplitterReturn As Variant
> Du skriver:
> > splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34),
> > "")
>
> Hvor er (funktionen) splitreturn erklæret henne lol
I form_Load
> Bruger du VB5 eller ældre siden du ikke bruger den indbyggede
> Split() funktion ?
Niksen, Bruger VB6, men hviste faktisk ikke at den havde denne funktion, men
man lære jo noget nyt hver gang.:)
> > Håber at der er nogle der kan hjælpe, for jeg har set mig blind
> > på det.:(
>
> Oh man...... :D
Det sagde jeg også, da jeg fandt ud af hvad der var galt.... Jeg havde
stavet Splitreturn forkert i Dim ....
Så til andre der bøvler, så handler der om at KUNNE stave, og stave
rigtig....
Surt show....
Men du skal have tak for hjælpen..
Robert
| |
|
|