Beste Weg, um zu definieren, eine große vba-string - d.h. der heredoc-äquivalent?
Wie soll ich definieren, die großen strings in VBA? Gibt es einen besseren Weg, als mit der Programmierung etwas wie die unten?
Dim largeString as String
largeString = "This is a long block of text that I want to fill " & _
"into a form field. I need to make sure I pay attention " & _
"to spacing and carriage return issues while doing so. " & _
"I also have to use quotes liberally, the concatenation " & _
"operator, and the continuance underscore to make sure " & _
"VBA can parse my code." & vbCr & vbCr & _
"It's kind of a pain in the ass and I wish I could use " & _
"a heredoc instead, letting me copy and paste the block" & _
"of text I need from another source and shove it into " & _
"a string."
Edit: Ugh, und es ist ein 25-line-Fortsetzung-Grenze zu? So viel zum schönen Einrücken und 80 Zeichen Breite, nur gibt mir genug Platz für ein paar anständige Absätze.
oder erstellen Sie eine Zeichenfolge, die auf Fliegen
Dim s as String
und s = String(1337, "a")
InformationsquelleAutor Oesor | 2010-09-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, das ist so gut wie es geht.
Für wirklich lange strings könnte es eine option, um halten Sie die Zeichenfolge in einer separaten Datei, oder verwenden einige Anwendungen verfügen. Zum Beispiel, in Wort, möchten Sie vielleicht zu speichern, den string in einer Variablen Dokument als verborgener text oder verborgene AutoText. In Excel, sollten Sie erwägen, eine versteckten Blatt für die Lagerung von langen string-Konstanten.
Ich mag diese Antwort, aber vielleicht so etwas wie einen text-stream in eine text-Datei. Das ist vielleicht zu viel, obwohl?
Ich bin mir nicht sicher, was du meinst. Tatsächlich halten die Zeichenkette in eine text-Datei war die erste option, die ich erwähnt.
Die Kehrseite der Medaille, es zu tun in einer text-Datei anstelle von code, eingebettet in ein Office-Dokument ist jetzt haben Sie mehrere Dateien, die Sie benötigen, zu erhalten. Für eine kleine, in sich geschlossene VBA-app, die gehen ein wenig über Bord.
InformationsquelleAutor Dirk Vollmar
Ich bevorzuge es zu tun auf diese Weise:
Ich denke, diese Methode ist einfacher, mit zu arbeiten, als die line-continuation-Methode und es gibt keine Zeilennummer limit für in mit auf diese Weise. Sie können kommentieren Sie einzelne Zeilen, die nützlich für das Debuggen von SQL-Zeichenfolgen.
Beim Umgang mit langen strings, ich finde es einfacher zu verwenden, kurze Variablennamen, da VBA nicht äquivalent
+=
Betreiber.largeString = largeString & ""
nimmt zu viel Platz und wird repetitiv, so ist die saite zu verkürzen name macht das format einigermassen erträglich.Für sehr große Blöcke von text, schreiben Sie in einem text-editor, dann kopieren und fügen Sie ihn in Ihre Verfahren. Kopieren Sie dann
und fügen Sie Sie am Anfang jeder Zeile. Der VBA-editor automatisch fügen Sie die Anführungszeichen am Ende der Zeile macht das Verfahren einfach zu tun.
vielleicht weil man gebeten zu halten, die Abfrage inside die excel-Datei, und eine preffers zu haben, wie diese als Wert in einer Zelle?
Die Grenze hier ist die 64 Kb - das ist, wie groß die einzelnen VBA-code-Modul sein kann.
Angenommen, ich übergeben zu müssen, eine große XML-Datei zu einer anderen Anwendung, dies scheint die einfachste und sauberste Lösung.
Vielleicht nicht ein großes Problem mit modernen Prozessoren, sondern wiederholte Verkettung ist viel mehr Prozessor-intensive in ASP, als einen langen string in einem einzelnen mehrzeiligen Zuweisung (oder mehrere
response.write
s). Diese Seite hat einige speed-Vergleiche -- somacon.com/p236.php -- es ist so etwas wie eine 23x Verbesserung!InformationsquelleAutor BrianZ
Andere Möglichkeit ist das speichern von text in den Kommentaren, dann analysieren und es in eine Funktion aus. Keine externen Dateien benötigt, gute Lesbarkeit.
InformationsquelleAutor C. Rocha