Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.?

3 Antworten

Ich bin in Powershell nicht zuhause, aber reicht es nicht direkt auf cells zuzugreifen?: $ws.cells($x, $y)

Woher ich das weiß:Berufserfahrung – Programmierer

Smurx 
Fragesteller
 03.04.2019, 12:14

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 ;(

0
Suboptimierer  03.04.2019, 12:16
@Smurx

Könnte es sich um ein Indizierungsproblem handeln? Sind die Sheets beginnend mit 1 indiziert? 

0
Smurx 
Fragesteller
 03.04.2019, 12:25
@Suboptimierer

Joa ich habe nur ein Worksheet und es mit 1 indiziert :

$ws = $wb.Worksheets.item(1)

0
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.


Smurx 
Fragesteller
 03.04.2019, 11:01

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

0
ohwehohach  03.04.2019, 11:04
@Smurx

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.

1

Das Bild nicht nicht lesbar.

Füge den Code bitte mithilfe des Code-Makros ein. Also so:

Hello World

Smurx 
Fragesteller
 03.04.2019, 12:15

#-----------------------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

  }

0