范围-VBA-为什么此代码不起作用?

范围-VBA-为什么此代码不起作用?,vba,excel,Vba,Excel,我试图填补我的VBA知识中的一些空白,我不明白为什么该代码在VBA中不起作用: Sub RangeTest() Dim TemplateRange As Range Set TemplateRange = ThisWorkbook.Worksheets("Template").Range("A7:BO200") For Each thing In ThisWorkbook.Worksheets("Template").Range("A7:BO200").Columns(2) Debu

我试图填补我的VBA知识中的一些空白,我不明白为什么该代码在VBA中不起作用:

Sub RangeTest()

Dim TemplateRange As Range
Set TemplateRange = ThisWorkbook.Worksheets("Template").Range("A7:BO200")

For Each thing In ThisWorkbook.Worksheets("Template").Range("A7:BO200").Columns(2)
    Debug.Print thing
Next thing

End Sub
一个范围不是一组可以迭代的其他对象吗?现在想想,我想可能不是。我注意到我可以遍历范围的.value。但我猜范围本身只是一个对象?

如果您更改

Debug.Print thing

您将看到‘thing’是您的范围中第2列的整个范围(因此B7:B200)。如果你想遍历这个范围内的每个单元格,你可以改变你的。。。对

For Each thing In ThisWorkbook.Worksheets("Template").Range("A7:BO200").Columns(2).Cells
如果你改变

Debug.Print thing

您将看到‘thing’是您的范围中第2列的整个范围(因此B7:B200)。如果你想遍历这个范围内的每个单元格,你可以改变你的。。。对

For Each thing In ThisWorkbook.Worksheets("Template").Range("A7:BO200").Columns(2).Cells

必须在
.Columns()
对象中说明要使用的集合;在这种情况下,
.Cells
集合似乎就是您想要的:

Sub RangeTest()
    Dim TemplateRange As Range
    Set TemplateRange = ThisWorkbook.Worksheets("Template").Range("A7:BO200")
    For Each thing In TemplateRange.Columns(2).Cells
    ' This is what you want to use, I think --^^^^^^
        Debug.Print thing
    Next thing
End Sub

必须在
.Columns()
对象中说明要使用的集合;在这种情况下,
.Cells
集合似乎就是您想要的:

Sub RangeTest()
    Dim TemplateRange As Range
    Set TemplateRange = ThisWorkbook.Worksheets("Template").Range("A7:BO200")
    For Each thing In TemplateRange.Columns(2).Cells
    ' This is what you want to use, I think --^^^^^^
        Debug.Print thing
    Next thing
End Sub

好的,你可以在每个单元格上迭代,
这个工作簿中的每件事。工作表(“模板”).Range(“A7:BO200”)。Columns(2)。Cells
好的,你可以在每个单元格上迭代,
这个工作簿中的每件事。工作表(“模板”).Range(“A7:BO200”)。Columns(2)。Cells
好的,我喜欢你解释的方式!我没有考虑到我必须在columns对象中指定我想要的集合!哦,我只是重新输入了范围,因为我尝试了不同的方法来看看我哪里出错了。好的,是的,我喜欢你解释的方式!我没有考虑到我必须在columns对象中指定我想要的集合!哦,我只是重新键入了范围,因为我尝试了不同的方法来查看哪里出了问题。我喜欢你使用
的方法。选择
以了解我尝试迭代的对象的更多信息!奇怪的是,我没有想到用它来调试我的问题。我喜欢你使用
的方法。选择
来了解我试图迭代的对象的更多信息!奇怪的是,我没有想到用它来调试我的问题。