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 Réponses :
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
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
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.
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
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 code> entre du début à la fin; Ajouter à la dernière ligne de la colonne + 1. InclureiSnumber () code>. 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.