2010-05-11 5 views
0

J'ai une gamme de cellules que je récupère d'Excel et je veux savoir comment obtenir la couleur des cellules dans une colonne (toutes les cellules sont de couleurs différentes). Jusqu'à présent, j'ai:Obtenir la couleur des cellules Excel en utilisant interop

Range range = sheet.get_Range("A1", "D10"); 

Ce qui me reçoit les données dont j'ai besoin dans un tableau d'objets, mais je veux être en mesure de parcourir les lignes et obtenir les couleurs des cellules de la colonne « A ». Est-ce possible?

Je sais que possible de le faire:

Range range = sheet.get_Range("A1", Missing.Value); 
var colour = range.Interior.Color; 

mais je préfère ne pas le faire pour chaque cellule individuelle.

Merci

Répondre

1

Chaque plage a une propriété des cellules et des lignes qui retourne une plage. De plus, Cells renvoie une plage. Voici quelques exemples.

Dim oRange As Excel.Range = CType(Me.Application.ActiveSheet, Excel.Range).Range("A1", "D10") 

    For Each oRowRange As Excel.Range In oRange.Rows 
     For Each oCellRange As Excel.Range In oRowRange.Columns 
      Debug.WriteLine(oCellRange.Interior.Color) 
     Next 
    Next 

    For Each oRowRange As Excel.Range In oRange.Range("A1") 
     Dim oCell As Excel.Range = CType(oRowRange.Cells(RowIndex:=1, ColumnIndex:=1), Excel.Range) 
    Next 

    For i As Integer = 1 To oRange.Rows.Count 
     Dim oCell As Excel.Range = CType(oRange.Cells(RowIndex:=i, ColumnIndex:=1), Excel.Range) 
    Next 
Questions connexes