10 Stimmen

Listen und Arrays in VBA

Ich bin absolut neu darin, in VB.NET zu schreiben, und ich war mir nicht einmal bewusst, dass es einen signifikanten Unterschied zwischen VB.NET und VBA gibt. Ich habe meine Anwendung in Visual Studio geschrieben, aber ich habe festgestellt, dass ich sie nach VBA in Outlook portieren muss, und es gibt einige Syntaxprobleme, mit denen ich umgehen muss. Ich habe bereits gesucht, aber ich kann keine Art von definitiver Referenz (wie die MSDN) für VBA oder sogar VB6 finden, was, soweit ich weiß, VBA viel näher kommt als VB.NET.

Ich werde die relevanten Codeabschnitte hier hinzufügen. Wenn jemand mehr Kontext benötigt, lassen Sie es mich bitte wissen - ich kann das Ganze posten, es ist nicht so lang. Ich würde jedoch gerne diesen Beitrag so einfach wie möglich halten.

Dim DateToday As String = String.Format("0:{yyyy/MM/dd}", DateTime.Now)
Dim Computers As New SortedList()
Dim disabledList As New List(Of String)
'\\ vier zusätzliche Listen
Dim compArray As Array

...

Computers.Add(ComputerName, ErrorState)

Die neuen Listen und sortierte Liste ergeben Erwartet: End of Statement in der Klammer nach List. Das Array gibt Erwartet: Bezeichner bei Array. Der String DateToday gibt ein erwartetes End of Statement am Gleichheitszeichen. Der Versuch, zur sortierten Liste hinzuzufügen, ergibt ein Erwartet: =.

Ich arbeite vielleicht seit zwei oder drei Tagen mit VB.NET und habe zuvor noch nie mit VBA oder VB6 gearbeitet, daher habe ich einfach nicht die erforderliche Erfahrung, um zu wissen, wie es weitergehen soll. Wenn einer von euch bereit wäre, mir zu helfen, würde ich das wirklich schätzen!

15voto

Ripster Punkte 3525

Sie müssen einige Ihrer Datentypen ändern, aber die Grundlagen dessen, was Sie gerade gepostet haben, könnten in etwas Ähnliches wie das hier umgewandelt werden, da die von mir verwendeten Datentypen möglicherweise nicht genau sind.

Dim DateToday As String: DateToday = Format(Date, "yyyy/MM/dd")
Dim Computers As New Collection
Dim disabledList As New Collection
Dim compArray(1 To 1) As String

'Weise Daten dem ersten Element im Array zu
compArray(1) = "asdf"

'Format = Element, Schlüssel
Computers.Add "ErrorState", "Computer Name"

'Gibt "ErrorState" aus
Debug.Print Computers("Computer Name")

Sammlungen können nicht sortiert werden, also wenn Sie Daten sortieren müssen, werden Sie wahrscheinlich ein Array verwenden wollen.

Hier ist ein Link zur Outlook-Entwicklerreferenz. http://msdn.microsoft.com/en-us/library/office/ff866465%28v=office.14%29.aspx

Eine weitere großartige Seite, um Ihnen den Einstieg zu erleichtern, ist http://www.cpearson.com/Excel/Topic.aspx

Alles von VB.Net nach VBA zu verschieben, wird nicht einfach sein, da nicht alle Datentypen gleich sind und Sie nicht das .Net-Framework haben. Wenn Sie stecken bleiben, posten Sie einfach den Code, den Sie konvertieren möchten, und Sie erhalten sicherlich Hilfe!

Bearbeitung:

Sub ArrayBeispiel()
    Dim Betreff As String
    Dim TestArray() As String
    Dim Zähler As Long

    Betreff = "Beispiel"
    Zähler = Len(Betreff)

    ReDim TestArray(1 To Zähler) As String

    For Zähler = 1 To Len(Betreff)
        TestArray(Zähler) = Right(Left(Betreff, Zähler), 1)
    Next
End Sub

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X