Axel Richter: Excel über COM ansteuern

Beitrag lesen

Hallo,

wenn ich allerdings etwas detailiertere border erstellen will

$border2 = &$excel -> Workbooks[1] -> Worksheets["Test"] -> Range("B3");
$border2 = &$border2 -> Borders("xlEdgeBottom"); // zeile 71

^Das ist kein String, sondern eine Konstante, welche im Excel-Umfeld definiert ist. Sie hat dort den Integer-Wert 9.

fehler lautet

Warning: (null)(): Invoke() failed: Typkonflikt. Argument: 2 in D:\inetpub\htdocs\CVS\xlstest\test4.php on line 71

Klar. Du übergibtst als 2. Argument einen String. Erwartet wird eine Ganzzahl.

Lösung:
Definiere die Konstanten im PHP-Umfeld oder arbeite mit den Zahlenwerten direkt.

Du bekommst die Werte durch Ausgaben im VBA in Excel

Sub test()
  Range("B1").Borders(xlEdgeBottom).LineStyle = xlDashDot
  MsgBox (xlEdgeBottom)
  MsgBox (xlDashDot)
  Range("B2").Borders(9).LineStyle = 4
End Sub

viele Grüße

Axel