Udostępnij za pośrednictwem


Porady: Programowane zmienianie formatowania w wierszach arkusza zawierających zaznaczone komórki

Można zmienić czcionkę całego wiersza, który zawiera zaznaczonej komórki tak, że tekst jest pogrubiony.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i aplikacji obsługiwanych w programach Excel 2013 i Excel 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

Aby pogrubić bieżącego wiersza i wcześniej pogrubiony wiersz normalny

  1. Zadeklarować zmienną statyczną, aby śledzić wcześniej zaznaczonego wiersza.

    Static previousRow As Integer = 0
    
    static int previousRow = 0;
    
  2. Pobrać odwołania do bieżącego za pomocą komórki ActiveCell właściwość.

    Dim currentCell As Excel.Range = Me.Application.ActiveCell
    
    Excel.Range currentCell = this.Application.ActiveCell;
    
  3. Styl bieżący wiersz pogrubiony using EntireRow właściwość aktywnej komórki.

    currentCell.EntireRow.Font.Bold = True
    
    currentCell.EntireRow.Font.Bold = true; 
    
  4. Zapewnić, że bieżąca wartość previousRow jest nie 0.0 (Zero) wskazuje, że jest po raz pierwszy przez ten kod.

    If previousRow <> 0 Then
    
    if (previousRow != 0)
    
  5. Upewnij się, że bieżący wiersz jest inny od poprzedniego wiersza.

    If currentCell.Row <> previousRow Then
    
    if (currentCell.Row != previousRow)
    
  6. Pobierz odwołaniem do zakresu, który reprezentuje wierszy, które zostało uprzednio wybrane i zestaw które wiersz nie może być pogrubienie.

    Dim rng As Excel.Range = DirectCast(ws.Rows(previousRow), Excel.Range)
    rng.EntireRow.Font.Bold = False
    
    Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
    rng.EntireRow.Font.Bold = false;
    
  7. Bieżący wiersz należy przechowywać tak, że może stać się poprzedniego wiersza na przechodzi dalej.

    previousRow = currentCell.Row
    
    previousRow = currentCell.Row;
    

Poniższy przykład przedstawia metodę kompletny.

Przykład

Private Sub BoldCurrentRow(ByVal ws As Excel.Worksheet)

    ' Keep track of the previously bolded row. 
    Static previousRow As Integer = 0

    ' Work with the current active cell. 
    Dim currentCell As Excel.Range = Me.Application.ActiveCell

    ' Bold the current row.
    currentCell.EntireRow.Font.Bold = True 

    ' If a pass has been done previously, make the old row not bold. 
    ' Make sure previousRow is not 0 (otherwise this is your first pass through). 
    If previousRow <> 0 Then 

        ' Make sure the current row is not the same as the previous row. 
        If currentCell.Row <> previousRow Then 

            Dim rng As Excel.Range = DirectCast(ws.Rows(previousRow), Excel.Range)
            rng.EntireRow.Font.Bold = False 
        End If 
    End If 

    ' Store the new row number for the next pass.
    previousRow = currentCell.Row
End Sub
// Keep track of the previously bolded row. 
static int previousRow = 0;

private void BoldCurrentRow(Excel.Worksheet ws)
{
    // Work with the current active cell.
    Excel.Range currentCell = this.Application.ActiveCell;

    // Bold the current row.
    currentCell.EntireRow.Font.Bold = true; 

    // If a pass has been done previously, make the old row not bold. 
    // Make sure previousRow is not 0 (otherwise this is your first pass through). 
    if (previousRow != 0)

        // Make sure the current row is not the same as the previous row. 
        if (currentCell.Row != previousRow)
        {
            Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
            rng.EntireRow.Font.Bold = false;
        }

    // Store the new row number for the next pass.
    previousRow = currentCell.Row;
}

Zobacz też

Zadania

Porady: Programowane stosowanie stylów do zakresów arkusza w skoroszycie

Porady: Programowane kopiowanie danych i formatowanie między arkuszami

Koncepcje

Praca z arkuszami

Parametry opcjonalne w rozwiązaniach Office