范围-VBA-为什么此代码不起作用?
我试图填补我的VBA知识中的一些空白,我不明白为什么该代码在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
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对象中指定我想要的集合!哦,我只是重新键入了范围,因为我尝试了不同的方法来查看哪里出了问题。我喜欢你使用的方法。选择以了解我尝试迭代的对象的更多信息!奇怪的是,我没有想到用它来调试我的问题。我喜欢你使用的方法。选择来了解我试图迭代的对象的更多信息!奇怪的是,我没有想到用它来调试我的问题。