Có thể lặp qua các ô đã phối trong vba hay không.Lặp qua các ô được hợp nhất trong VBA
- Tôi có 6 sáp nhập các tế bào trong khoảng
B4:B40
- tôi cần các giá trị trong các tế bào 6 6 lần lặp chỉ.
Có thể lặp qua các ô đã phối trong vba hay không.Lặp qua các ô được hợp nhất trong VBA
B4:B40
Đây là một đâm đầu tiên cho vấn đề của bạn:
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 cho soltuion làm việc – brettdj
Chỉ cần một chút chặt chẽ hơn, ý tưởng tương tự:
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
Những câu trả lời ở trên xem xét để có bạn sắp xếp.
Nếu bạn không biết vị trí ô đã hợp nhất thì bạn có thể sử dụng quy trình sau để nhanh chóng phát hiện chúng.
Khi tôi xây dựng Mappit! tôi nhận ra rằng khi tôi phát triển báo cáo di động sáp nhập mà sáp nhập các tế bào là một phần của xlBlanks
Vì vậy, bạn có thể sử dụng mã để phát hiện các tế bào sáp nhập ngay lập tức chứ không phải lặp qua mỗi thử nghiệm tế bào cho MergedCells
bất động sản đúng.
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
Thật là một mẹo! :) desserves ít nhất một +1 – JMax
bạn có biết số lượng ô được hợp nhất không? tại sao bạn chỉ muốn 6 lần lặp? bạn có thể giải thích cho chúng tôi thêm một chút về những gì bạn định làm ** không? – JMax