Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

StrPtr(variable)

StrPtr(variable)
Ilka
Hallo,
welche Bedeutung hat denn die Funktion StrPtr().
Leider wird diese Funktion in der Hilfe von Excel 2000 nicht erklärt.
Gruß
Ilka Maria

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: StrPtr(variable)
12.12.2009 15:56:42
Daniel
StrPtr() benutzt man nach INPUTBOX, um festzustellen ob die zugewiesene Variable leer ist, weil der Anwender nichts eingegeben und dann OK gedrückt hat, oder weil der Anwender sich für die Option ABBRECHEN entscheiden hat.
Sub test()
Dim a As String
a = InputBox("Eingabe")
If StrPtr(a) = 0 Then
MsgBox "Abbruch"
Else
MsgBox "OK"
End If
End Sub
Gruß, Daniel
Anzeige
AW: StrPtr(variable)
12.12.2009 16:10:50
Nepumuk
Hallo Daniel,
das ist aber eher ein Abfallprodukt der Funktion. Hauptsächlich wird sie benutzt um API's welche nur mit Pointern arbeiten, die entsprechenden Variablen zuzuweisen. Beispiel RtlMoveMemory:
Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
    pDst As Any, _
    pSrc As Any, _
    ByVal ByteLen As Long)

Parameter:

· Destination
Points To the starting address of the copied block’s destination.

· Source
Points To the starting address of the block of memory To copy.

· Length
Specifies the size, in bytes, of the block of memory To copy.

Gruß
Nepumuk
Anzeige
Nachtrag
12.12.2009 16:17:46
Nepumuk
Hallo,
diese Aussage: weil der Anwender nichts eingegeben und dann OK gedrückt hat
ist falsch. Denn in dem Fall hat die Inputbox-Funktion der Variablen einen Leerstrig zugewiesen. Damit gibt die StrPtr-Funktion die Speicheradresse der Variablen zurück.
Das funktioniert nur, wenn der User auf Abbrechen klickt.
Gruß
Nepumuk
AW: und wo kommt in deinem
12.12.2009 16:29:47
Daniel
Beispiel die Funktion StrPtr() vor?
btw der Kenntnistand der Fragestellerin ist "Kaum Excel/VBA-Kenntnisse", daran sollte sich auch deine Antwort orientieren. (und ich hab von dem was du da schreibst, auch niichts verstanden)
Gruß, Daniel
Anzeige
AW: und wo kommt in deinem
12.12.2009 16:56:18
Nepumuk
Hallo,
na dann mal ein Beispiel für die CopyMemory-Funktion. Es wird ein String gebildet, in dem ein Text 100mal hintereinander steht. Das ganze kannst du natürlich mit reinen VB-Mitteln auch machen, es geht aber mal um das Prinzip wie die Funktion arbeitet und wie StrPtr dabei mitspielt:
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
    ByRef pDst As Any, _
    ByRef pSrc As Any, _
    ByVal ByteLen As Long)

Public Sub Beispiel()
    
    Const TEST_TEXT = "Hallo Daniel "
    
    Dim strString As String
    Dim lngCounter As Long, lngPosition As Long
    
    strString = Space$(100 * Len(TEST_TEXT))
    
    For lngCounter = 1 To 100
        
        Call CopyMemory(ByVal StrPtr(strString) + lngPosition, _
            ByVal StrPtr(TEST_TEXT), LenB(TEST_TEXT))
        
        lngPosition = lngPosition + LenB(TEST_TEXT)
        
    Next
    
    Debug.Print strString
    
End Sub

Der Vorteil der Funktion, sie ist "sauschnell" :-)
Gruß
Nepumuk
Anzeige
AW: Danke für beide Hilfen
12.12.2009 16:03:14
Ilka
Hallo hary, hallo Daniel,
vielen Dank für die Hilfen. Die Sache ist verstanden.
Gruß
Ilka Maria

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige