我测试了一下,用您的可以,但是前面加上worksheets就不行了,请问原因是不是在这里?
我用的例子如下,提示错误“运行时错误‘1004’,应用程序定义或对象定义错误”
Sub copytry()
Dim a, b, x, y As Long
a = 1
b = 2
x = 6
y = 7
Worksheets("down").Range(Cells(a, x), Cells(b, y)).Select
End Sub
提示错误是
你只是指明了range函数的父对象,而cells的父对象没有指明,
如果你两个都不指定那么默认的都是当前激活的工作表.如果你指明了其中一个那么另外一个也要指定.
Sub copytry()
Dim a, b, x, y As Long
a = 1
b = 2
x = 6
y = 7
with worksheets("down")
.Range(.Cells(a, x),.Cells(b, y)).Select
end with
End Sub
是我没问清楚,抱歉,选定是可以的,但是运行 .copy 等命令时会出错,请问是什么原因?有什么解决办法吗?
追答通常COPY命令应该不会有问题
不知是怎样的错误提示?
试试在RANGE对象前完整引用父对象,像这样:
worksheets("Sheet1").range(cells(a,b), cells(x,y)).copy destination:=...
不行,不论a,b,x,y定义为integer还是string,都会提示“运行时错误‘1004’,应用程序定义或对象定义错误”
现在简要的测试程序如下,请指点,谢谢
Dim a, b, x, y As Integer
a = 1
b = 2
x = 6
y = 7
Worksheets("down").Range(Cells(a, x), Cells(b, y)).Copy Destination:=Worksheets("汇总").Cells(63, 2)
哦
对了,cells引用也需要指定父对象:
Worksheets("down").Range(Worksheets("down").Cells(a, x), Worksheets("down").Cells(b, y)).Copy _
Destination:=Worksheets("汇总").Cells(63, 2)
简化为:
With Worksheets("down")
.Range(.Cells(a, x), .Cells(b, y)).Copy Destination:=Worksheets("汇总").Cells(63, 2)
End With
原来是这样,谢谢,麻烦您啦,对我这个新手还是很有用的:)
加点分,其他朋友也帮了很多,但是因为只能给一个人,其他朋友抱歉啦,一并感谢!
如果a赋值为某一个数字,比如“13”,那是不是只能用cells嵌套?是否有办法?(比如通过char指令转换?)另外,我没问清楚,其实我之前也是用cells嵌套的,但是在.copy时会有问题,如楼下追问内容,谢谢。
追答可以用的cells嵌套,但定义为整型的好,我不知道你为什么要变量是字符。
如果是整型,可以这样Range(Cells(a, x), Cells(b, y)).Select
对,是用的整形,现在我发现不是range嵌套的问题,而是我在前面加了非活动表格的部分,比如当前活动表格是“汇总”,而如果语句是worksheets("down").range(cells(a,b),cells(x,y)).select 就会出现错误提示。是不是我的语法表述有问题?
追答那样确实有问题,如果表格名字是“汇总”的话,那你的语句也应该是指向“汇总”,worksheets("汇总").range(cells(a,b),cells(x,y)).select