in VBA

2013-06-10 14 views
7

Sono estremamente nuovo a scrivere in VB.NET e non mi ero nemmeno reso conto che c'era una differenza significativa tra VB.NET e VBA. Ho scritto la mia applicazione in Visual Studio, ma mi sono reso conto che avrei bisogno di portarlo su VBA in Outlook, e ci sono alcuni problemi di sintassi che devo affrontare. Ho già cercato, ma non riesco a trovare alcun tipo di riferimento definitivo (come il msdn) per VBA o anche VB6, che da quello che sento è molto più vicino a VBA di VB.NET.in VBA

Includerò qui le sezioni di codice pertinenti. Se qualcuno ha bisogno di più contesto, per favore fatemelo sapere - posso postare tutto, non è così lungo. Mi piacerebbe mantenere questo post il più semplice possibile, però.

Le nuove liste e l'elenco ordinato danno Previsto: Fine della dichiarazione tra parentesi dopo la Lista. L'array fornisce Prevedi: identificatore nell'array. La stringa DateToday fornisce una conclusione prevista per il segno di uguale. Il tentativo di aggiungere all'elenco ordinato fornisce un risultato previsto: =.

Ho lavorato con VB.NET per forse due o tre giorni, e non ho mai lavorato con VBA o VB6 prima, quindi non ho l'esperienza necessaria per sapere dove andare da qui. Se qualcuno di voi fosse disposto ad aiutarmi, lo apprezzerei davvero!

+1

Per dirla semplicemente, il codice che si sta scrivendo non è la sintassi VBA valido. VBA è una lingua diversa e non supporta il framework .NET. –

+1

Se si cercano riferimenti, MSDN dispone di una documentazione completa per VBA: http://msdn.microsoft.com/en-us/library/gg278934%28v=office.14%29.aspx –

+1

Si potrebbe iniziare con Riferimento al linguaggio VBA su MSDN: http://msdn.microsoft.com/en-us/library/office/gg264383(v=office.14).aspx – Joe

risposta

9

Dovrai modificare alcuni dei tuoi tipi di dati ma le basi di ciò che hai appena pubblicato potrebbero essere convertite in qualcosa di simile a questo dato che i tipi di dati che ho usato potrebbero non essere accurati.

Le raccolte non possono essere ordinate, quindi se hai bisogno di ordinare i dati probabilmente vorrai usare un array.

Ecco un collegamento al riferimento per lo sviluppatore di Outlook. http://msdn.microsoft.com/en-us/library/office/ff866465%28v=office.14%29.aspx

Un altro ottimo sito per aiutarvi a iniziare è http://www.cpearson.com/Excel/Topic.aspx

Moving tutto sopra a VBA da VB.Net non sta per essere semplice dal momento che non tutti i tipi di dati sono gli stessi e non si hanno il framework .Net. Se ti blocchi ti basta inserire il codice che stai bloccando e sicuramente avrai un aiuto!

Edit:

Sub ArrayExample() 
    Dim subject As String 
    Dim TestArray() As String 
    Dim counter As Long 

    subject = "Example" 
    counter = Len(subject) 

    ReDim TestArray(1 To counter) As String 

    For counter = 1 To Len(subject) 
     TestArray(counter) = Right(Left(subject, counter), 1) 
    Next 
End Sub 
+0

Grazie mille! La ragione per cui stavo usando le liste invece degli array era che il programma non sapeva per certo quante voci ci sarebbero nell'array prima che fosse fatto. Ma posso convertirlo in un array. Una domanda stupida: devo dichiarare l'array all'inizio del programma, oppure posso aspettare fino a quando non decido quanti spazi avremo bisogno, e poi dichiararlo? – Wolves

+1

È necessario scorrere i dati per determinare il numero di elementi che verranno aggiunti all'array e memorizzare il numero in una variabile. Utilizza ReDim per reinizializzare la matrice alla dimensione corretta o in base al formato dei dati che potresti essere in grado di utilizzare ReDim preservare per impedire il looping tra i dati due volte, una volta per contare, una volta per leggere. L'unico problema è che se si utilizza un array multidimensionale è possibile ridimensionare solo l'ultima dimensione. Metterò un esempio nella mia risposta per te. – Ripster

+0

Grazie! E 'stato molto utile! – Wolves