0
votes

Comment répertorier toutes les valeurs entre les cellules dans toutes les colonnes?

J'essaie de faire une boucle qui imprime chaque valeur entre deux cellules d'affilée dans une seule colonne. J'aimerais également pouvoir ignorer / ignorer des valeurs non entières.

Par exemple: la cellule A5 contient 5673 et la cellule B5 contient 5677. Par conséquent, la macro produirait 5673, 5674, 5675, 5676 et 5675, 5676 et 5677. P> P> J'ai trouvé des exemples utiles pour boucler à travers chaque ligne et imprimer chaque valeur, mais n'a pas été capable de combiner les deux. p>

pour imprimer chaque valeur entre les deux numéros: P>

LR = Range("A" & Rows.Count).End(xlUp).Row
For j = 1 To LR
   Cells(j, 1).Offset(0, 2).Value = ***Every cell value between Cells(j, 1) and Cells(j, 2)***
Next j


3 commentaires

D'où vient 5674? Avez-vous essayé n'importe quel code?


On dirait que vous voulez une boucle pour parcourir votre tableau et une boucle imbriquée à l'intérieur d'une instruction IF où si la cellule <> cellules.Offset (, 1) puis entre du début à la fin; Ajouter à la dernière ligne de la colonne + 1. Inclure iSnumber () . Faites un coup de poignard avec cela et mettez à jour votre message avec vos nouvelles informations.


@Sjr je viens de mettre à jour mon message pour ajouter des éclaircissements. Je veux chaque valeur entre les chiffres dans les colonnes adjacentes.


3 Réponses :


0
votes

Si vous aurez toujours ces 2 colonnes, vous pouvez utiliser ce code

for j = 1 to 2:for i = 1 to cells(rows.count,j).end(xlup).row
if isnumeric(cells(i,j)) then cells(rows.count,4).end(xlup).offset(1,0) = cells(i,j)
next:next


0 commentaires

1
votes

Essayez ceci. Vous pouvez utiliser spécialcells code> pour choisir les cellules numériques et remplir code> pour produire les séquences intermédiaires.

Sub x()

Dim rA As Range, rCell As Range

For Each rA In Columns(1).SpecialCells(xlCellTypeConstants, xlNumbers).Areas
    For Each rCell In rA
        Range("D" & Rows.Count).End(xlUp)(2).Value = rCell.Value
        Range("D" & Rows.Count).End(xlUp).DataSeries Rowcol:=xlColumns, Step:=1, Stop:=rCell.Offset(, 1), Trend:=False
    Next rCell
Next rA

End Sub


2 commentaires

Cela a fonctionné parfaitement, merci. Je serai honnête que je ne comprendrai pas comment la boucle intérieure fonctionne mais je vais essayer de disséquer et de comprendre. Merci encore.


Mon plaisir. La première zone couvre tous les nombres contigus de la colonne A, c'est-à-dire A1: A2 afin que vous ayez alors besoin de boucler à travers chacun d'eux.



0
votes

boucle à travers la cellule de la plage par cellule; Test de isnumeric code> et valeurs en double code>. Remarque: il s'agit simplement d'un code de test, vous devez toujours ajouter des références de classeur et de feuille de travail

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row

    For j = 1 To 2
        If IsNumeric(Cells(i, j)) And Cells(i, j).Offset(, 1).Value <> Cells(i, j).Value Then
            If IsEmpty(Cells(1, 4).Value) Then
                Cells(1, 4) = Cells(i, j)
            Else: Cells(Rows.Count, 4).End(xlUp).Offset(1) = Cells(i, j)
            End If
        End If
    Next j
Next i


0 commentaires