Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 不匹配运行时错误_Vba_Excel - Fatal编程技术网

Vba 不匹配运行时错误

Vba 不匹配运行时错误,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, _

我得到一个类型不匹配的运行时错误,代码如下。 有人能告诉我我需要做什么不同吗

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
在这一行

If MyRange > 1 Then
您正在尝试将范围对象与数值1进行比较


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

如果您正在查看单元格值,则在该范围内的每个单元格中循环可能会更容易:

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

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

一个类型不匹配仅仅意味着你试图比较不是同一类型的值。您必须确保该范围内的所有值实际上都是数字。您不能将日期与数字进行比较,而不会出现错误。更新您的问题以解释代码的用途是一个好主意。