Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.?
Ich arbeite hier gerade mit Powershell und dieser Fehler ist erschienen.
Ich weiß, dass powershell es nicht zulässt, dass man Methoden mit Variablen benutzt, die $null sein könnten ich weiß bloß leider nicht wie ich das fixen kann.
ich habe schon versucht das zu verändern indem ich davor eine if abfrage setze , welche fragt ob $x = 0 ist aber es hat leider auch nicht funktioniert.
Ich wäre sehr dankbar über eure Hilfe.
3 Antworten
Ich bin in Powershell nicht zuhause, aber reicht es nicht direkt auf cells zuzugreifen?: $ws.cells($x, $y)
Könnte es sich um ein Indizierungsproblem handeln? Sind die Sheets beginnend mit 1 indiziert?
Ich weiß, dass powershell es nicht zulässt, dass man Methoden mit Variablen benutzt, die $null sein könnten
Das stimmt nicht. Natürlich kannst Du das. Du kannst nur keine Methode auf einem nicht instantiierten Objekt aufrufen. Das ist ein Unterschied.
Wenn $ws nicht NULL ist, kannst Du die Methode natürlich aufrufen. Da $ws aber NULL ist, geht das natürlich nicht.
Die Lösung ist natürlich, vorab zu prüfen, ob $ws NULL ist oder nicht und ggf. dann aufzuräumen und abzubrechen, anstatt dass der Runtime-Error ausgelöst wird.
OK danke dass habe ich nicht gesehen
Wie kann ich dass den ändern, da $ws bei mir einfach nur zum aufrufen eines excel workscheets da ist
Naja, offensichtlich kann das Worksheet ja nicht geöffnet werden. Dann ist entweder $ws NULL oder $ws ist nicht NULL, aber eine der weiteren Properties Cells oder Items.
Das musst Du halt mal debuggen und schauen, was da Sache ist.
Das Bild nicht nicht lesbar.
Füge den Code bitte mithilfe des Code-Makros ein. Also so:
Hello World
#-----------------------Exportieren-der-Benutzerdaten----------------------------------------------made-by-Lucas-xD---
#Excel Objekt wird erstellt
"Excel Objekt wird erstellt.."
$Excel = new-object -comobject Excel.application
$Excel.visible = $True
$wb = $excel.workbooks.open("F:\Daten.csv") # open the workbook
$ws = $wb.Worksheets.open # open worksheet
$x = 1
$y = 1
$Ausgabepfad = "F:\Daten.csv"
$Worddatei = "F:\DIESES VERWENDEN!Zuweisung einer Benutzerkennung_NEU_FORMULAR.docx"
if($geschlecht -eq "männlich"){
$anrede1 = "Herr"
$anrede2 = "Sehr geehrter Herr"
$anrede3 = "Dear Mr."}
elseif($geschlecht -eq "weiblich"){
$anrede1 = "Frau"
$anrede2 = "Sehr geehrte Frau"
$anrede3 = "Dear Ms."}
$array = @($anrede1,$vorname,$nachname,$department,$anrede2,$alias,$pwd,$Email,$anrede3)
while ($x -lt 6){
$ws.Cells($x,$y) = $array[$x]
$x = $x + 1
}
Ich bin auch nicht in Powershell zuhause aber ich muss dass leider damit machen, da soviel Vorskript schon vorhanden war.
Leider ändert dass mit dem was du geschrieben hasst nichts es gibt immer noch den gleichen Fehler aus.
ich bin jetzt schon den ganzen Tag dabei dass zu fixen aber egal was ich in Foren als Lösungsvorschläge finde , es hilft alles irgendwie nichts ;(