【发布时间】:2013-06-07 17:33:45
【问题描述】:
我有一个颜色编码的表格。我想循环浏览每一行,并返回一个字符串,该字符串表示该行中的哪些列是彩色的。我的方法是定义要循环通过的垂直单元格范围,然后为该范围内的每个单元格定义要循环通过的水平范围。我得到的错误表明 For 变量已在使用中。这是我正在使用的代码:
Public Sub Months()
Dim Tally As String
Dim R1 As Range
Dim R2 As Range
Dim Col As String
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Set R1 = Range(Selection.Address)
For Each cell In R1
cell.Activate
Range(Selection, Selection.End(xlRight)).Select
Set R2 = Range(Selection.Address)
For Each cell In R2
If cell.Interior.ColorIndex > 0 Then
Col = Split(ActiveCell(1).Address(1, 0), "$")(0)
If Tally Is Nothing Then
Set Tally = Col
Else
Set Tally = Tally + ";" + Col
End If
Range("DF" & (ActiveCell.Row)).Select
ActiveCell.Value = Tally
End If
Next
Next
End Sub
有什么想法吗?
非常感谢。
【问题讨论】:
-
这不能回答你的问题,但我注意到你没有在顶部声明
cell。或许可以添加Dim cell as Cell以便更清楚地了解? -
尝试将“R2 中的每个单元格”更改为“R2 中的每个单元格2”
-
@sous2817 会从表面上“修复”它,但它没有回答
why的问题。此外,使用未声明的变量是一种不好的做事方式。此代码中还有其他错误。 -
@PowerUser 不会修复它,因为
cell循环已经在使用中,它不能被重复使用。 OP 需要另一个变量用于第二个循环,并且根据您的评论正确标注它们也是一个好主意:)