2010-12-02 43 views
1

Je souhaite imprimer les valeurs dans une ligne Excel. Je peux accéder à la ligne et la sélectionner, mais comment faire une boucle dans les cellules? Ou y a-t-il un objet en ligne que je peux lire?Impression des valeurs de cellule de ligne dans Excel

Range("A1").End(xlUp).Offset(1, 0).Select 

    Do Until IsEmpty(ActiveCell) 

     r = Rows(ActiveCell.Row).EntireRow.Select 

     For Each cell In r.Cells 
      Debug.Print cell.Value 
     Next cell 

    Loop 

Répondre

2

Je pense que faire Do Until IsEmpty (ActiveCell) `est pas une bonne idée:
vous pourriez avoir des cellules vides suivies par les cellules non vides.

Comment ce code fonctionne pour vous?

Sub print_some_values() 

    Dim c As Long 
    Dim r As Long 
    Dim max_col As Long 

    r = ActiveCell.Row 
    max_col = ActiveSheet.UsedRange.Columns.Count 

    For c = 1 To ActiveSheet.UsedRange.Columns.Count 
     Debug.Print ActiveSheet.Cells(r, c).Value 
    Next c 

End Sub 
+0

Vous avez raison concernant la cellule vide. – Lorenzo

1

Je ne suis pas sûr de ce que vous essayez d'atteindre, mais ce code imprime la ligne actuelle jusqu'à ce qu'une cellule vide se trouve

Sub a() 

Dim r As Range 
Dim c As Range 

    Set r = Rows(ActiveCell.Row) 
    For Each c In r.Cells 
     If (IsEmpty(c)) Then Exit For 
     Debug.Print c.Value 
    Next c 

Modifier

Je pense que cela ce que vous cherchez:

Sub a() 

Dim TheArray As Variant 

TheArray = Range("A4:E4").Value 
Debug.Print TheArray(1, 4) 

End Sub 
+0

Juste pour clarifier mon cas d'utilisation, je veux parcourir toutes les lignes, lire les valeurs et les envoyer à SQL Server. Y a-t-il une meilleure manière de faire cela? Je m'attendais à traiter une ligne comme une rangée d'enregistrements, drôle Excel n'a rien de mieux à lire les valeurs dans les lignes. – Lorenzo

+0

@L. De Leo voir edit –

+0

Est-ce sérieusement la seule référence MS pour Excel? http://msdn.microsoft.com/en-us/library/aa272268%28v=office.11%29.aspx – Lorenzo

0

J'ai utilisé une approche mixte, la ">" me dit si la ligne est sale (a été modifiée)

Dim r As Range 
Dim c As Range 
Dim max_col As Long 

max_col = ActiveSheet.UsedRange.Columns.Count 

Range("A1").End(xlUp).Offset(1, 0).Select 

Do Until IsEmpty(ActiveCell) 
    Debug.Print ActiveCell.Value 

    If ActiveCell.Value = ">" Then 
     Set r = Rows(ActiveCell.Row) 

     For Each c In r.Cells 
      'print the value of each cell in the row 
      If c.Column = 1 Then 
       'skip 
      ElseIf c.Column <= max_col Then 
       Debug.Print c.Value 
      Else 
       Exit For 
      End If 
     Next c 
    End If 

    ActiveCell.Offset(1, 0).Select 

Loop