循环遍历单元格并添加到范围

use*_*701 11 excel vba excel-vba

如果它们符合某个标准,我将如何遍历单元格B1到J1并将它们添加到范围中.例如.

Dim Range1 As Range
For i = 1 to 9
If Range("A1").Offset(1,i) meets a certain criteria Then
**Add that cell to Range1**
End If
Next i
Run Code Online (Sandbox Code Playgroud)

我不确定如何处理向Range1添加某些单元格的部分.

谢谢您的帮助!

bre*_*tdj 27

像这样的东西Union用来粘合你的范围

  1. 请注意,For each循环比For i = 1 to x方法更快
  2. 您可以使用SpecialCells立即确定您的新范围(例如任何空白,任何错误,任何公式等)

    Sub Test()
      Dim rng1 As Range
      Dim rng2 As Range
      Dim c As Range
      Set rng1 = Range("B1:J1")
    
      For Each c In rng1
        ' Add cells to rng2 if they exceed 10
        If c.Value > 10 Then
            If Not rng2 Is Nothing Then
            ' Add the 2nd, 3rd, 4th etc cell to our new range, rng2
            ' this is the most common outcome so place it first in the IF test (faster coding)
                Set rng2 = Union(rng2, c)
            Else
            ' the first valid cell becomes rng2
                Set rng2 = c
            End If
        End If
      Next
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)