Ich schreibe ein Makro, das eine Liste von Namen, die in einem LDAP-Format sind konvertiert sie in First, Last (Region). Für diejenigen von Ihnen, die nicht wissen, was LDAP aussieht, ist es unter:Excel VBA Substring
CN=John Smith (region),OU=Legal,DC=example,DC=comand
In Excel VBA, ich scheinen nicht in der Lage zu sein String.substring zu verwenden (Start, Ende). Eine Suche bei Google scheint zu zeigen, dass Mid (String, Start, Ende) die beste Option ist. Das Problem ist folgendes: In Mid ist die Ganzzahl für end die Entfernung vom Anfang, nicht die tatsächliche Indexposition des Zeichens. Dies bedeutet, dass unterschiedliche Namensgrößen unterschiedliche Endstellen haben und ich den Index von ")" nicht verwenden kann, um das Ende der Region zu finden. Da alle Namen mit CN = beginnen, kann ich das Ende der ersten Teilkette richtig finden, aber ich kann ")" nicht richtig finden, weil die Namen unterschiedliche Längen haben.
Ich habe einige Code unten:
mgrSub1 = Mid(mgrVal, InStr(1, mgrVal, "=") + 1, InStr(1, mgrVal, "\") - 4)
mgrSub2 = Mid(mgrVal, InStr(1, mgrVal, ","), InStr(1, mgrVal, ")") - 10)
manager = mgrSub1 & mgrSub2
Kennt jemand eine Möglichkeit, anstelle eines Endpunkts, um tatsächlich einen Satz Endpunkt zu verwenden, die von Anfang an so viele Werte weg ist?
Die Gesamtzahl der Zeichen in der Zeichenkette wird mir nicht helfen. I die Länge kann auf jeder Seite des ")" variieren, so dass ich den Index-Speicherort nicht finden kann, um darauf basierend zu stoppen. – spassen
können Sie ein Beispiel für die Ausgabe veröffentlichen, die Sie benötigen? normalerweise müssen Sie eine for-Schleife codieren, um dies zu erreichen – gbianchi
CN = Smith, John (Region), OU = Legal, DC = Beispiel, DC = comand sollte Smith, John (Region) – spassen