Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
excel vba范围单元格错误对象已定义_Vba_Excel - Fatal编程技术网

excel vba范围单元格错误对象已定义

excel vba范围单元格错误对象已定义,vba,excel,Vba,Excel,我一直在使用Excel中的一个宏,该宏在一个工作表(“次要”)中对一个表进行排序,当满足条件时,它应该将该表中的数据添加到第二个工作表(“工作表1”)中的另一个表中,但我一直在运行1004错误“未定义对象”,我不明白为什么,请帮助。谢谢 Sub ord_esp_aprob() a = Worksheets("Minor").Cells(Rows.Count, 1).End(xlUp).Row b = Worksheets("Sheet1").Cells(Rows.Count, 4).En

我一直在使用Excel中的一个宏,该宏在一个工作表(“次要”)中对一个表进行排序,当满足条件时,它应该将该表中的数据添加到第二个工作表(“工作表1”)中的另一个表中,但我一直在运行1004错误“未定义对象”,我不明白为什么,请帮助。谢谢

Sub ord_esp_aprob()
  a = Worksheets("Minor").Cells(Rows.Count, 1).End(xlUp).Row
  b = Worksheets("Sheet1").Cells(Rows.Count, 4).End(xlUp).Row + 1

  For i = 3 To a
    If Worksheets("Minor").Cells(i, 1).Value = "Orden en Espera de Aprobación" Then
      Worksheets("Sheet1").Range(Cells(b, 4)).Value = Worksheets("Minor").Range(Cells(i, 2)).Value '(This is where the error occurs)
      Worksheets("Sheet1").Activate
    End If
  Next i
End Sub

设置以下值时缺少范围引用:

Worksheets("Sheet1").Range(Cells(b, 4)).Value
试试这个:

Option Explicit

Sub ord_esp_aprob()

Dim a As Long
Dim b As Long
Dim i As Long

Dim sht_minor As Worksheet
Dim sht_sht1 As Worksheet

Set sht_minor = ThisWorkbook.Worksheets("Minor")
Set sht_sht1 = ThisWorkbook.Worksheets("Sheet1")

a = sht_minor.Cells(sht_minor.Rows.Count, 1).End(xlUp).Row
b = sht_sht1.Cells(sht_sht1.Rows.Count, 4).End(xlUp).Row + 1

For i = 3 To a

If sht_minor.Cells(i, 1).Value = "Orden en Espera de Aprobación" Then
    sht_sht1.Cells(b, 4).Value = sht_minor.Cells(i, 2).Value
    sht_sht1.Activate
End If

Next i

End Sub

你好,谢谢!我刚试过,但还是有同样的错误。。。如果我将单元格(,)更改为固定范围,如“A7”,它会工作,所以我猜问题出在单元格(,)的Syntax中,但我在工作之前和工作中都是这样使用的。。所以我不知道。更新了代码,你能再试一次吗请告诉我上次更新是否有效。就这样,谢谢!虽然我仍然不明白为什么我使用的方法不起作用。检查我的代码,你可以看到你实际上不需要使用
范围
方法,然后是
单元格
,也可以尝试引用你的所有范围,看看代码,所有范围引用都从实际工作簿开始,然后是工作表名称,最后是范围!