Cambiar el formato mediante programación en filas de hoja de cálculo que contienen celdas seleccionadas

Puede cambiar la fuente de una fila completa que contiene una celda seleccionada para que el texto esté en negrita.

Se aplica a: La información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para Excel. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Para que la fila actual se en negrita y la fila con negrita anterior sean normales

  1. Declare una variable estática para realizar un seguimiento de la fila seleccionada anteriormente.

    static int previousRow = 0;
    
  2. Recupere una referencia a la celda actual mediante la ActiveCell propiedad .

    Excel.Range currentCell = this.Application.ActiveCell;
    
  3. Aplique estilo a la negrita de la fila actual mediante la EntireRow propiedad de la celda activa.

    currentCell.EntireRow.Font.Bold = true;
    
  4. Asegúrese de que el valor actual de previousRow no es 0. Un 0 (cero) indica que esta es la primera vez a través de este código.

    if (previousRow != 0)
    
  5. Asegúrese de que la fila actual es diferente de la fila anterior.

    if (currentCell.Row != previousRow)
    
  6. Recupere una referencia a un intervalo que represente la fila que se seleccionó anteriormente y establezca esa fila en negrita.

    Excel.Range rng = (Excel.Range)ws.Rows[previousRow];
    rng.EntireRow.Font.Bold = false;
    
  7. Almacene la fila actual para que pueda convertirse en la fila anterior en el paso siguiente.

    previousRow = currentCell.Row;
    

    En el siguiente ejemplo se muestra el método completo.

Ejemplo

// 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;
}