不匹配运行时错误

时间:2014-05-29 18:39:57

标签: vba excel-vba excel

我使用以下代码收到类型不匹配运行时错误 有人能告诉我我需要采取哪些不同的做法吗?

Sub Macro2()

    Dim MyRange As Range
    Set MyRange = Range("L1:L15")
    Do While Not IsEmpty(MyRange)
      If MyRange > 1 Then
         Range(MyRange.Offset(1, 0), MyRange.Offset(MyRange.Value - 1, _
            0)).EntireColumn.Insert
         Range(MyRange, MyRange.Offset(MyRange.Value - 1, 1)).EntireColumn.FillDown
      End If
      Set MyRange = MyRange.Offset(MyRange.Value, 0)
      Loop
End Sub

2 个答案:

答案 0 :(得分:3)

就在这一行。

If MyRange > 1 Then

您正在尝试将Range对象与Numeric值1进行比较。

你对这条线的意图是什么?如果您想知道Range的每个单元格中的值,您必须编写一个循环。

答案 1 :(得分:0)

假设您正在查看单元格值,可能更容易遍历范围中的每个单元格:

Sub Macro2()

    Dim MyRange As Range
    Dim c as Cell
    Set MyRange = Range("L1:L15")
    For each c in MyRange.Cells
      If c.Value > 1 Then
         Range(c.Row, c.Column + 1).EntireColumn.Insert
         Range(c.Row, c.Column + 1).EntireColumn.FillDown
      End If
    Next c
End Sub

我不清楚你在中间尝试做什么,所以可能需要一些调整。