Vba &引用;对于每个单元格“;在命名范围的子集中?

Vba &引用;对于每个单元格“;在命名范围的子集中?,vba,excel,named-ranges,Vba,Excel,Named Ranges,我猜这是一个简单的问题。我想在VBA中循环一个命名区域,但我想跳过该区域中的第一个单元格。有人能帮忙吗 (注:我是VBA新手,不是训练有素的开发人员,并且自学成才。这个论坛非常有用。但如果你认为我在提问之前没有试图找到解决方案,那你就错了。)@GSerg明确了这一点,但由于你有一个后续问题,就是对每个都使用,这里有一种方法: first = True For Each c In r.Cells If Not first Then c.Value = "Testing" End I

我猜这是一个简单的问题。我想在VBA中循环一个命名区域,但我想跳过该区域中的第一个单元格。有人能帮忙吗


(注:我是VBA新手,不是训练有素的开发人员,并且自学成才。这个论坛非常有用。但如果你认为我在提问之前没有试图找到解决方案,那你就错了。)

@GSerg明确了这一点,但由于你有一个后续问题,就是对每个
都使用
,这里有一种方法:

first = True
For Each c In r.Cells
  If Not first Then
    c.Value = "Testing"
  End If
  first = False
Next

@GSerg确定了这一点,但由于您有一个后续问题,即对每个
使用
,这里有一种方法:

first = True
For Each c In r.Cells
  If Not first Then
    c.Value = "Testing"
  End If
  first = False
Next
还有一种方法

Sub AllButFirst()

    Dim rCell As Range
    Dim rRng As Range

    Set rRng = Sheet1.Range("namedrange")

    For Each rCell In rRng.Offset(1, 0).Resize(rRng.Rows.Count - 1, rRng.Columns.Count).Cells
        rCell.Value = "testing"
    Next rCell

End Sub
还有一种方法

Sub AllButFirst()

    Dim rCell As Range
    Dim rRng As Range

    Set rRng = Sheet1.Range("namedrange")

    For Each rCell In rRng.Offset(1, 0).Resize(rRng.Rows.Count - 1, rRng.Columns.Count).Cells
        rCell.Value = "testing"
    Next rCell

End Sub

谢谢那就行了。对r中的每个单元格执行此操作的任何方法(并以某种方式告诉它从第二个单元格开始)。。。下一个?谢谢。那就行了。对r中的每个单元格执行此操作的任何方法(并以某种方式告诉它从第二个单元格开始)。。。下一个?太棒了。这正是我所希望的。我也学到了一些东西。谢谢迪克。这只适用于一个单独列的命名范围。如果它是一个矩形或一行,结果将非常不同,而其他两个答案在所有情况下都适用。一般来说,我并不是说这种方法是错误的,但这段特定的代码需要进一步细化。是的,我对这个问题的理解比以前更多。我认为这是一个罕见的场景,你有一个矩形,只想跳过第一个单元格而不是第一行,所以我假设这就是OP想要的。所以我回答了OP应该问的问题,而不是他问的问题哦,如果命名区域的最后一个单元格位于工作表的最后一行,它也会失败-在这种情况下,
Offset(1,0)
引发异常:)太棒了。这正是我所希望的。我也学到了一些东西。谢谢迪克。这只适用于一个单独列的命名范围。如果它是一个矩形或一行,结果将非常不同,而其他两个答案在所有情况下都适用。一般来说,我并不是说这种方法是错误的,但这段特定的代码需要进一步细化。是的,我对这个问题的理解比以前更多。我认为这是一个罕见的场景,你有一个矩形,只想跳过第一个单元格而不是第一行,所以我假设这就是OP想要的。所以我回答了OP应该问的问题,而不是他问的问题哦,如果命名区域的最后一个单元格位于工作表的最后一行,它也会失败-在这种情况下,
Offset(1,0)
引发异常:)