很显然你的range并未处于选定区域就使用了activate方法。其实你这个代码有很多“废话”,复制和选择性粘贴时,选中或激活单元格区域都是没必要的。事实上select这个方法在录制宏时才会在自动代码里出现,一般编写代码时基本不用。 我修改如下,请仔细体会。Set pxl_copy = wb_report.Worksheets("公式") ...
Private Sub Worksheet_Change(ByVal Target As Range)With Sheets("数据")If Target.Address = "$E$6" And [G2] <> "" And [H2] <> "" Then Range("e6") = WorksheetFunction.Average(Range("g2"), Range("h2"))End If End With End Sub 双击E6就执行 ...
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" & c)就会出问题,c必须要是一个从1开始的整数才不报错,c为空值的时候,系统就去访问Sheets(2).Range("C"),这明细缺少一个行,所以报错,明白了吗?另外,图和代码已经不同了,不知道你现在的代码又改为什么样子了,所以谈...
应该是你的cells没有表名引用的sheet是哪个,默认是激活的这个sheet,你写完整看看:Call 合并(Sheet1.Range(sheet1.Cells(FR, 1), sheet1.Cells(R - 1, 1)))
可以这么考虑!要看你的具体代码,可能是range引用的单元格区域超出表格的规定,比如你在03版里引用了第65537行或257列,这都会导致引用失败。另:Range对象是针对activesheet,看看你操作的对象表中是否存在保护等情况
你好!会不会是哪里写漏一个字母之类的。Sub Tiqu()Set myRange = ThisWorkbook.Worksheets("Sheet2").Range("A2:C10")End Sub
我要将同一工作簿里的三张工作表 sheets("1月")、sheets("2月")、sheets("3月")的数据复制到sheets("1季度"),当我复制一月的时候,要激活一月,以此类推,一旦把active语句去掉后立马就弹出“方法range作用于对象worksheet时失败”我想知道当我用上了active 分别依次激活1、2、3月份复制到1季度,1季度一直没处...
Sheet5.Range("A2:C" & t).Copy 第八行你的参数t不合法,你随便让t=2什么的就不抱错了 你在第八行处设置断点,看看t是什么值