如何在VBA中循环遍历范围的行和列?

时间:2013-05-20 17:31:50

标签: vba excel-vba range excel

我正在尝试仅使用单元格值创建甘特图类型显示。由于格式化,公式将无法运行,因此我需要运行VBA。

我想循环遍历单个命名范围的列和行。但是,我不认为VBA格式是正确的,因为这出错“438:对象不支持此属性或方法”

Dim d As Integer
Dim e As Integer
For d = 1 To **Range("PRcal").Cols.Count**
    For e = 1 To **Range("PRcal").Rows.Count**
        If [Range("PRcal").Cells.(e, d).Value = Range("PRcal").Cells(1, d).Value] Then
            Cells(e, d).Value = Cells(e, 1)
        End If
    Next e
Next d

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:3)

  • 范围没有Cols属性 - 他们确实拥有Columns属性
  • if
  • Cells.(e,d)中有一个额外的点
  • 您不能在if
  • 中使用方括号

这应该可以正常工作:

Dim d As Integer
Dim e As Integer
For d = 1 To Range("PRcal").Columns.Count
    For e = 1 To Range("PRcal").Rows.Count
        If Range("PRcal").Cells(e, d).Value = Range("PRcal").Cells(1, d).Value Then
            Cells(e, d).Value = Cells(e, 1)
        End If
    Next e
Next d