2016-04-06 21 views
1

Wie kann ich Excel bekommen, um alle verfügbaren Umgebungsvariablen auf meinem "temp" Blatt aufzulisten? Im Folgenden Code tut etwas für mich zurückkehren ...Excel VBA - Liste aller VBA Umgebungsvariablen

Sub ListEnvironVariables() 
    Dim strEnviron As String 
    Dim i As Long 
    For i = 1 To 255 
     strEnviron = Environ(i) 
     If LenB(strEnviron) = 0& Then Exit For 
     Debug.Print strEnviron 
    Next 
End Sub 

Dank

Antwort

2

paar Zeilen aus dem Code modifiziert, wie unten.

Sub ListEnvironVariables() 
    Dim strEnviron As String 
    Dim i As Long 
    For i = 1 To 255 
     strEnviron = Environ(i) 
     If LenB(strEnviron) = 0& Then Exit For 
     With Worksheets("temp") 
      .Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Value = strEnviron 
     End With 
    Next 
End Sub 
+0

gibt es keine Ausgabe mit diesem Makro. Ich kann es laufen sehen, aber das temporäre Blatt bleibt leer. Ich bin auf Windows 10 mit Office 2013, sollte der Code auf Computern mit früheren Versionen obwohl ... – Armitage2k

+0

Hinweis: Es scheint, dass Ihre Schleife von 1 bis 255 Probleme hat. Ich habe den Code an diesen und seine Funktion angepasst: .Range ("A65536"). Ende (xlUp) .Offset (1, 0) = strEnviro – Armitage2k

+0

Ich habe es gerade getestet und es arbeitet mit: .Range ("A" & Range ("A" & Rows.Count) .End (xlUp) .Row + 1) .Value = strEnviron – TsTeaTime

0

Jetzt habe ich die Codierung geändert. Dadurch werden alle Umgebungsvariablen in Ihrem unmittelbaren Fenster aufgelistet. Wenn Sie dies nicht sehen können, wählen Sie diesen Menüpunkt:

Sub ListEnvironmentVariables() 
'each environment variable in turn 
Dim EnvironmentVariable As String 
'the number of each environment variable 
Dim EnvironmentVariableIndex As Integer 
Dim i As Long 
'get first environment variables 
EnvironmentVariableIndex = 1 
EnvironmentVariable = Environ(EnvironmentVariableIndex) 
'loop over all environment variables till there are no more 
Do Until EnvironmentVariable = "" 
'get next e.v. and print out its value 
With Worksheets("temp") 
      .Cells(i, 1).Value = EnvironmentVariableIndex 
      .Cells(i, 2).Value = EnvironmentVariable 

     End With 
'go on to next one 
EnvironmentVariableIndex = EnvironmentVariableIndex + 1 
i = i + 1 
EnvironmentVariable = Environ(EnvironmentVariableIndex) 
Loop 
End Sub 

Plz in diese sehen auch für weitere Referenz http://www.wiseowl.co.uk/blog/s387/environment-variable-vba.htm

+0

Dies gibt das VBA-Direktfenster aus, nicht das Excel-Blatt selbst. Wie kann ich stattdessen in das Arbeitsblatt "temp" einfügen? – Armitage2k