Retrieving Values From Excel объединенные столбцы

В общем, пометка некоторой переменной как rvalue reference с && не означает, что она сохраняет этот статус при прохождении src дальше. Я имею в виду, в конце концов, переменная имеет имя в контексте конструктора и поэтому может, очевидно, использоваться как lvalue. На самом деле выражение src действительно является lvalue. src передается вашему конструктору как rvalue, потому что вызывающая сторона намеревалась интерпретировать его как таковой.

Теперь в вашем конструкторе переменная фактически названа, и использование этого имени приводит к выражению, которое необходимо явно пометить как rvalue reference, чтобы интерпретировать как таковое. В противном случае, это просто значение. Вот почему вы должны move снова его интерпретировать вызываемым абонентом (здесь MyMovingBase::ctor) как rvalue, содержимое которого может быть перемещено из исходного объекта.

1115 Поэтому комментарий Франсуа верен. Использование

Subclass(Subclass &&src) : MyMovingBase<SubClass>(std::move(src))

делает свое дело.

6
задан Ferruccio 15 January 2009 в 17:33
поделиться

3 ответа

Для получения доступа к маркировкам "Col1" и "Col2" можно использовать следующее:

=INDEX (1$: 1,1$, СТОЛБЕЦ () - MOD (СТОЛБЕЦ ()-1,2))

Примечание: Это предполагает, что Вы группируетесь то же количество ячеек. Если бы это были три ячейки, то Вы просто изменили бы последнее число в формуле к 3 и так далее.

Править: Вот то, как это работает:

ИНДЕКС (1$: 1,1$, x) возвращает значение ячейки последовательно 1, столбец x. Если Ваша таблица на самом деле не расположена в верхнем левом углу рабочего листа, можно изменить это на фактический диапазон, который включает все объединенные маркировки. В этом случае это было бы: ИНДЕКС (1$A$: 1,1$D$, x)

СТОЛБЕЦ () возвращает номер столбца текущей ячейки (1 в столбце A, 2 в столбце B, и т.д.)

MOD (СТОЛБЕЦ ()-1, x) возвращает смещение от текущего столбца до столбца, который содержит надлежащую маркировку

10
ответ дан 8 December 2019 в 02:53
поделиться

Ячейки B1 и D2 не содержат значений, только A1 и C1, имеют что-то в них.

Таким образом, необходимо будет просто удостовериться, что формулы в столбцах A и B и называют A1 справочным значением, и что формулы в столбцах C и D оба относятся к C1 для справочного значения.

0
ответ дан 8 December 2019 в 02:53
поделиться

Я создал простую функцию в vba, которая решит эту проблему:

Function mergedText(rngMergedCell As Range)

    If rngMergedCell.MergeCells = True Then
        mergedText = rngMergedCell.MergeArea(1, 1)
    Else
        mergedText = rngMergedCell
    End If

End Function

Если ячейка является объединенной ячейкой, функция вернет значение в первом элементе объединенной ячейки - здесь объединенная ячейка хранит свое значение

4
ответ дан 8 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: