Hallo Community,
im Rahmen meiner Ausbildung bin ich gerade dabei ein kleines VB-Script zu schreiben.
Die Aufgabe soll es sein, aus einer Excel Liste die Namen von Servern auszulesen, über einen nslookup die IP-Adresse zu ermitteln und diese wieder in die List einzutragen. Das funktioniert exemplarisch im Moment darüber, dass ich über einen CMD Befehl eine Hilfedatei erstelle, die wieder ausgelesen und danach wieder gelöscht wird. Allerdings habe ich hier nahezu 1000 Datensätze und im Laufe der aktualisierung verreckt er mir des öfteren mal (naja eigentlich immer, meist zwischen 200 und 600).
Meine Frage also ist: Ist es möglich, die Ausgabe nach dem nslookup (die ja in der DOS-Konsole erscheint) direkt in eine Variable zu laden um den Umweg über die externe Hilfsdatei umgehen zu können?
Hier der Quellcode:
im Rahmen meiner Ausbildung bin ich gerade dabei ein kleines VB-Script zu schreiben.
Die Aufgabe soll es sein, aus einer Excel Liste die Namen von Servern auszulesen, über einen nslookup die IP-Adresse zu ermitteln und diese wieder in die List einzutragen. Das funktioniert exemplarisch im Moment darüber, dass ich über einen CMD Befehl eine Hilfedatei erstelle, die wieder ausgelesen und danach wieder gelöscht wird. Allerdings habe ich hier nahezu 1000 Datensätze und im Laufe der aktualisierung verreckt er mir des öfteren mal (naja eigentlich immer, meist zwischen 200 und 600).
Meine Frage also ist: Ist es möglich, die Ausgabe nach dem nslookup (die ja in der DOS-Konsole erscheint) direkt in eine Variable zu laden um den Umweg über die externe Hilfsdatei umgehen zu können?
Hier der Quellcode:
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMS As Long)
Sub Ip_Ermitteln()
Dim strName As String
Dim strBefehl As String
Dim Ip As String
Dim i As Integer
i = 3
Do While ActiveSheet.Cells(i, 2) <> ""
Rem ========================================
Rem == Name des Servers wird ausgelesen ==
Rem ========================================
strName = ActiveSheet.Cells(i, 2).Value
Rem ========================================
Rem == Befehl wird erstellt ==
Rem ========================================
strBefehl = ("CMD /c nslookup " & strName & " >> help.txt")
Shell (strBefehl)
Sleep 300
Rem ========================================
Rem == IP-Adresse wird geschrieben ==
Rem ========================================
ActiveSheet.Cells(i, 6).Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;help.txt", _
Destination:=ActiveSheet.Cells(i, 6))
.Name = "help_9"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 5
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(9, 1)
.TextFileFixedColumnWidths = Array(10)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Rem ========================================
Rem == Hilfedatei wird entfernt ==
Rem ========================================
Sleep 400
strBefehl = ("CMD /c del help.txt")
Shell (strBefehl)
i = i + 1
Sleep 300
Loop
End Sub
Zuletzt bearbeitet: