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
展开
 我来答
百度网友b591af5
2011-10-21 · TA获得超过552个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:201万
展开全部
因为你的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的
追问
成了,搞懂了,谢谢
languanzeng
2011-10-21 · TA获得超过2284个赞
知道小有建树答主
回答量:1645
采纳率:0%
帮助的人:1797万
展开全部
把代码里面的 Sheets("sheet1") 改为 Activesheet
追问
谢谢帮助。但我想操作的只是sheet1的内容,只不过我必须在sheet2下去操作而已。我想知道为什么该代码在sheet2为active的情况下无法使用。
追答
Sheets("sheet1")  里面的sheet1 不是表标签名,而是名称(在vbe窗口的属性里可以看到表的“名称”属性),你进去把“名称”属性,改为与name属性(表标签名)相同,同伟sheet1,sheet2,就可以运行正确了。

在vba里,一个工作表有两个表名属性:(名称)属性和name属性,后者即为显示在表标签处的名字,当跨表操作时,就会使用(名称)属性进行引用,而不是name属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaopohai54321
2011-10-21
知道答主
回答量:3
采纳率:0%
帮助的人:4990
展开全部
同意楼上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式