¿Es posible recorrer las celdas combinadas en vba?Looping a través de celdas combinadas en VBA
- tengo 6 celdas combinadas en el rango
B4:B40
- necesito los valores en estos 6 células sólo 6 iteraciones.
¿Es posible recorrer las celdas combinadas en vba?Looping a través de celdas combinadas en VBA
B4:B40
Aquí está una primera puñalada a su problema:
Option Explicit
Sub loopOverCells()
Dim rCell As Range
Dim i As Integer
Set rCell = [B1]
For i = 1 To 6
Debug.Print rCell.Address
Set rCell = rCell.Offset(1, 0) ' Jump 1 row down to the next cell
Next i
End Sub
+1 para la solución de trabajo – brettdj
Sólo un poco más apretado, idea similar:
Option Explicit
Sub ListValues()
Dim i As Long
For i = 4 To 40 Step 6
Debug.Print Range("B" & i).Value
Next i
End Sub
Las respuestas anteriores busque tener la ordenó.
Si no sabe dónde están las celdas combinadas, puede usar la siguiente rutina para detectarlas rápidamente.
Cuando construí Mappit! me di cuenta de que cuando he desarrollado informes celda combinada que se fusionaron células fueron parte de xlBlanks
Así que usted puede utilizar el código para detectar células fusionadas de inmediato en lugar de recorrer cada prueba de células de la propiedad MergedCells
siendo cierto
Sub DetectMerged()
Dim rng1 As Range
Dim rng2 As Range
On Error Resume Next
Set rng1 = Intersect(Cells.SpecialCells(xlFormulas), Cells.SpecialCells(xlBlanks))
Set rng2 = Intersect(Cells.SpecialCells(xlConstants), Cells.SpecialCells(xlBlanks))
On Error GoTo 0
If Not rng1 Is Nothing Then MsgBox "Merged formulae cells in " & rng1.Address(0, 0)
If Not rng2 Is Nothing Then MsgBox "Merged constant cells in " & rng2.Address(0, 0)
End Sub
¡Qué truco! :) desserves al menos un +1 – JMax
¿sabes cuántas celdas se han fusionado? ¿Por qué quieres solo 6 iteraciones? ¿podría explicarnos un poco más lo que ** pretende hacer **? – JMax