Что располагается Excel. Свойство Rows действительно делает?

-(IBAction)SegmentbtnCLK:(id)sender
{ [self sortArryofDictionary];
    [self.objtable reloadData];}
-(void)sortArryofDictionary
{ NSSortDescriptor *sorter;
    switch (sortcontrol.selectedSegmentIndex)
    {case 0:
            sorter=[[NSSortDescriptor alloc]initWithKey:@"Name" ascending:YES];
            break;
        case 1:
            sorter=[[NSSortDescriptor alloc]initWithKey:@"Age" ascending:YES];
            default:
            break; }
    NSArray *sortdiscriptor=[[NSArray alloc]initWithObjects:sorter, nil];
    [arr sortUsingDescriptors:sortdiscriptor];
    }
59
задан RBarryYoung 12 July 2019 в 16:16
поделиться

4 ответа

Range.Rows и Range.Columns возвращают по существу тот же диапазон, за исключением того факта, что новый диапазон имеет флаг, который указывает, что он представляет строки или столбцы . Это необходимо для некоторых свойств Excel, таких как Range.Count и Range.Hidden, и для некоторых методов, таких как Range.AutoFit () :

  • Range.Rows.Count возвращает количество строк in Range.
  • Range.Columns.Count возвращает количество столбцов в диапазоне.
  • Range.Rows.AutoFit () автоматически выравнивает строки в диапазоне.
  • Range.Columns.AutoFit ( ) автоматически подбирает столбцы в Range.

Вы можете обнаружить, что Range.EntireRow и Range.EntireColumn полезны, хотя они все еще не совсем то, что вы ищете . Они возвращают все возможные столбцы для CompleteRow и все возможные строки для CompleteColumn для представленного диапазона.

Я знаю это, потому что SpreadsheetGear для .NET поставляется с. NET API, которые очень похожи на API Excel. SpreadsheetGear API поставляется с несколькими строго типизированными перегрузками для индексатора IRange, включая ту, которую вы, вероятно, хотели бы иметь в Excel:

  • IRange this [int row1, int column1, int row2, int column2];

Отказ от ответственности: я владею SpreadsheetGear LLC

53
ответ дан 24 November 2019 в 18:30
поделиться

Два ваших примера - единственное, что я когда-либо использовал для свойств Rows и Columns , но теоретически вы могли бы сделать с ними все, что можно сделать с помощью объекта Range .

Тип возвращаемого значения этих свойств сам по себе является Range , поэтому вы можете делать такие вещи, как:

Dim myRange as Range
Set myRange = Sheet1.Range(Cells(2,2),Cells(8,8))
myRange.Rows(3).Select

Что выберет третью строку в myRange (Ячейки B4: H4 на Листе 1).

update: Чтобы делать то, что вы хотите, вы можете использовать:

Dim interestingRows as Range
Set interestingRows = Sheet1.Range(startRow & ":" & endRow)

update # 2: Или, чтобы получить подмножество строк из другого диапазона:

Dim someRange As Range
Dim interestingRows As Range

Set myRange = Sheet1.Range(Cells(2, 2), Cells(8, 8))

startRow = 3
endRow = 6

Set interestingRows = Range(myRange.Rows(startRow), myRange.Rows(endRow))
7
ответ дан 24 November 2019 в 18:30
поделиться

Я не уверен, но думаю, что второй параметр - отвлекающий маневр.

И .Rows, и .Columns принимают два необязательных параметра: RowIndex и ColumnIndex. Попробуйте использовать ColumnIndex, например Rows (ColumnIndex: = 2) , генерирует ошибку для как .Rows, так и .Columns .

По моему мнению, это в некотором смысле унаследовано от Cells (RowIndex, ColumnIndex) Свойство, но подходит только первый параметр.

2
ответ дан 24 November 2019 в 18:30
поделиться

Возможно, это немного мешанина, но следующий код делает то, что вы, кажется, хотите делать:

Set rng = wks.Range(wks.Rows(iStartRow), wks.Rows(iEndRow)).Rows
1
ответ дан 24 November 2019 в 18:30
поделиться
Другие вопросы по тегам:

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