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
Zadeklarować zmienną statyczną, aby śledzić wcześniej zaznaczonego wiersza.
Static previousRow As Integer = 0
static int previousRow = 0;
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;
Styl bieżący wiersz pogrubiony using EntireRow właściwość aktywnej komórki.
currentCell.EntireRow.Font.Bold = True
currentCell.EntireRow.Font.Bold = true;
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)
Upewnij się, że bieżący wiersz jest inny od poprzedniego wiersza.
If currentCell.Row <> previousRow Then
if (currentCell.Row != previousRow)
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;
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