EXCEL VBA问题!为什么我的页面在sheet1的时候可以运行下面的代码,而在sheet2为active的时候运行就错误?
Suba()Sheets("sheet1").Range(Cells(1,2),Cells(6,2)).Value=Sheets("sheet1").Range(Cell...
Sub a()
Sheets("sheet1").Range(Cells(1, 2), Cells(6, 2)).Value = Sheets("sheet1").Range(Cells(1, 1), Cells(6, 1)).Value
End Sub 展开
Sheets("sheet1").Range(Cells(1, 2), Cells(6, 2)).Value = Sheets("sheet1").Range(Cells(1, 1), Cells(6, 1)).Value
End Sub 展开
展开全部
因为你的Cells没指明是谁的cells默认就是activesheet的cells
Sub a()
Sheets("sheet1").Range(Sheets("sheet1").Cells(1, 2), Sheets("sheet1").Cells(6, 2)).Value = Sheets("sheet1").Range(Sheets("sheet1").Cells(1, 1), Sheets("sheet1").Cells(6, 1)).Value
End Sub
简单点写就是
Sheets("sheet1").Range("b1:b6")=Sheets("sheet1").Range("a1:a6");
都是作用于sheet1的
Sub a()
Sheets("sheet1").Range(Sheets("sheet1").Cells(1, 2), Sheets("sheet1").Cells(6, 2)).Value = Sheets("sheet1").Range(Sheets("sheet1").Cells(1, 1), Sheets("sheet1").Cells(6, 1)).Value
End Sub
简单点写就是
Sheets("sheet1").Range("b1:b6")=Sheets("sheet1").Range("a1:a6");
都是作用于sheet1的
追问
成了,搞懂了,谢谢
展开全部
把代码里面的 Sheets("sheet1") 改为 Activesheet
追问
谢谢帮助。但我想操作的只是sheet1的内容,只不过我必须在sheet2下去操作而已。我想知道为什么该代码在sheet2为active的情况下无法使用。
追答
Sheets("sheet1") 里面的sheet1 不是表标签名,而是名称(在vbe窗口的属性里可以看到表的“名称”属性),你进去把“名称”属性,改为与name属性(表标签名)相同,同伟sheet1,sheet2,就可以运行正确了。
在vba里,一个工作表有两个表名属性:(名称)属性和name属性,后者即为显示在表标签处的名字,当跨表操作时,就会使用(名称)属性进行引用,而不是name属性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询