在VBA(Visual Basic for Applications)中,遇到“方法Range作用于对象_global时失败”的错误通常意味着Range方法被错误地应用到了一个不支持该方法的对象上,或者在使用Range时没有正确地指定上下文(如在哪个工作表或工作簿中)。VBA中的Range对象主要用于操作Excel中的单元格区域,但它必须明确地与某个工作表相关联。 以...
q未赋值,默认为0,CStr(q)是空值,Range("B" & CStr(q))就是Range("B" )
Range(aq).Copy Sheets("完成版").Rows(Sheets("完成版").Range("e" & Cells.Rows.Count).End(xlUp).Row + 1)代码上面 加一行代码,跟踪看看行号和列号 debug.print aq 有这么大的列吗?你的a可能有10000 excel表了行号有这么大,列号最大256列 ...
可能是Range("A & i:C200")不对,试试range(cells(i,1),cells(200,3))如果还不能解决,可能是没有激活到所需工作单,第二行添一句workbooks(数据所在xls).activate
Top6: 错误1004:方法Range作用于对象_Global时失败 Range("A1:H")缺少H列的行号 Top7: 对象不支持该属性或方法 这种错误顾名思义,就是对象的属性用错。 隐藏行应该用Rows(1).Hidden = True,对Worksheet隐藏用Visible属性 Top8: 对象变量或者With变量未设置 Find方法没有找到值为1的单元格,Rng为...
或者是在所有的Range前都指定Sheet,最常见的一类报错是方法'Range'作用于对象'_Global'时失败 ...
“Sheet3.Range”里的Sheet3没定义。定义sheet3,Dim Sheet3 as worksheet set sheet3=thisworkbook.sheets("sheet3")或者把程序里所有没有引号的“Sheet3”,改成 Sheets("Sheet3")
If Cells(i, 5) = Cells(i + 1, 5) Then Sheet1.Range(Cells(i, 3), Cells(i, 5)).Copy 把这句改成 下面的试试 If Cells(i, 5) = Cells(i + 1, 5) Then Sheet1.Range(Sheet1.Cells(i, 3), Sheet1.Cells(i, 5)).Copy ...
c为空值的时候,系统就去访问Sheets(2).Range("C"),这明细缺少一个行,所以报错,明白了吗?另外,图和代码已经不同了,不知道你现在的代码又改为什么样子了,所以谈不上帮你修改好。只是指出你代码里面下面这样语句的错误:a=c=3 应该改为两行 a=3 c=3 否则c就会是空值 ...
可以这么考虑!要看你的具体代码,可能是range引用的单元格区域超出表格的规定,比如你在03版里引用了第65537行或257列,这都会导致引用失败。另:Range对象是针对activesheet,看看你操作的对象表中是否存在保护等情况