FYI, я использую Perl и Win32 :: OLE, но ошибка - это VBA Word.Почему не существует wdBorderVertical при использовании диапазона ячеек вместо выделения?
Используя модуль Perl Win32 :: OLE, я пытаюсь создать таблицу в Word и отформатировать некоторые ее элементы. Я создал таблицу (15 x 3) и успешно создал объект диапазона, указывающий на ячейки от (2, 1) до (14, 3), то есть все ячейки, кроме верхних и нижних строк.
Затем я установил OutsideLineStyle и InsideLineStyle и включил границы, но итоговая таблица не имеет вертикальных границ внутри таблицы. Существует граница вокруг всей таблицы и границы между строками, но не между столбцами.
Я попытался исправить это, установив wdBorderVertical, но я получаю сообщение об ошибке «Запрошенный член коллекции не существует». Я не знаю, почему.
Вот мой код:
$cells = $document->Range($table->Cell(2, 1)->Range->Start, $table->Cell(14, 3)->Range->End);
$cells->Borders->{OutsideLineStyle} = wdLineStyleSingle;
$cells->Borders->{OutsideLineWidth} = wdLineWidth150pt;
$cells->Borders->{InsideLineStyle} = wdLineStyleSingle;
$cells->Borders->{InsideLineWidth} = wdLineWidth150pt;
$cells->Borders->Item(wdBorderRight)->{LineStyle} = wdLineStyleSingle;
$cells->Borders->Item(wdBorderRight)->{LineWidth} = wdLineWidth150pt;
# The next two lines generate the error.
$cells->Borders->Item(wdBorderVertical)->{LineStyle} = wdLineStyleSingle;
$cells->Borders->Item(wdBorderVertical)->{LineWidth} = wdLineWidth150pt;
$cells->Borders->{Enable} = 1;
Не существует wdBorderVertical для диапазонов ячеек? Я пытаюсь сделать это без использования выбора или цикла, поскольку кажется (и, возможно, я ошибаюсь), что Диапазоны специально используются, поэтому вы можете избежать ненужных циклов и т. П., И вы можете использовать несколько диапазонов по сравнению с одним выбором.
Хм .. бы она существует, если я петельные через ряды? – romandas
Я не знаю :(... Я просто пытался исследовать ответ, и я только вижу, что он применяется к 'Таблице' и 'Item' .... –
+1 и принят. существовать. – romandas