Я заинтересован в копировании листа в конец рабочей книги с помощью ActiveQt
Я посмотрел на метод Copy () в сгенерированной документации QAxObject
«Рабочий лист», который написан так:
void Copy(QVariant Before = 0, QVariant After = 0);
очевидно, что невозможно передать значение параметру After, не передавая что-либо параметру Before.
Я изо всех сил пытался найти способ сделать это, но никакой подсказки не было найдено
Я взглянул на C # и VBA, но они оба используют «отсутствующую» константу, которую я не смог найти в ActiveQt.
в настоящее время я добавляю (или копирую) перед временным листом, который я удаляю в конце.
Нелогично иметь такие методы Move, Add и Copy, для которых требуются параметры До и После, без решения использовать только После
так какие-нибудь предложения, как добавить лист в конец рабочей книги?
или как использовать необязательные параметры в ActiveQt
?
Заранее спасибо!
QVariant
имеет построенное по умолчанию нулевое значение. Это то, что вы должны использовать для «отсутствующих» параметров, предполагая, что данный метод принимает отсутствующий параметр.
Например.:
Copy({}, after); // C++11
Copy(QVariant(), after); //C++98
Я только что нашел решение, проблема была в том, как я передал параметры:
sheet->dynamicCall("Copy(QVariant, QVariant)", QVariant(), sheet->asVariant());
но после прочтения документации метода Copy по гиперссылке я обнаружил, что неправильно прочитал документацию, я должен был передать ее следующим образом:
sheet->dynamicCall("Copy(QVariant, QVariant)", QVariantList {QVariant(), sheet->asVariant()});