Excel VBA语言错误提示‘1004’ 类range的select 方法无效
例如:PrivateSubCommandButton2_Click()Range("A1").SelectSheets("Sheet3").SelectRange("B6...
例如:
Private Sub CommandButton2_Click()
Range("A1").Select
Sheets("Sheet3").Select
Range("B6:D6").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True
Sheets("Sheet2").Select
End Sub
如果用宏的话没问题,但要是要将其设置在“命令按钮”里的话就会有错误提示。错误点就在Sheet做切换的时候有问题! 展开
Private Sub CommandButton2_Click()
Range("A1").Select
Sheets("Sheet3").Select
Range("B6:D6").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True
Sheets("Sheet2").Select
End Sub
如果用宏的话没问题,但要是要将其设置在“命令按钮”里的话就会有错误提示。错误点就在Sheet做切换的时候有问题! 展开
3个回答
展开全部
你的按钮是在哪个Sheet里呢?
对于非按钮所在Sheet里的单元格引用,Range前面要加上所在的Sheet名,这样代码看起来也不容易混淆,如:
Sheets("Sheet3").Activate
Sheets("Sheet3").Range("B6:D6").Select
并且,如果你不需要界面显示真的切换到Sheet3,只是在后台对Sheet3单元格进行操作就可以的话,Sheets("Sheet3").Activate这句都可以不要,也节省了程序运行的时间。
如果每个Sheets里的操作较多的话,可以用With语句将对各个Sheet的操作分别集中到一处,这样看起来比较清楚,如:
With Sheets("Sheet3")
.Activate
.Range("B6:D6").Select
......
End With
With Sheets("Sheet2")
.Activate
......
End With
对于非按钮所在Sheet里的单元格引用,Range前面要加上所在的Sheet名,这样代码看起来也不容易混淆,如:
Sheets("Sheet3").Activate
Sheets("Sheet3").Range("B6:D6").Select
并且,如果你不需要界面显示真的切换到Sheet3,只是在后台对Sheet3单元格进行操作就可以的话,Sheets("Sheet3").Activate这句都可以不要,也节省了程序运行的时间。
如果每个Sheets里的操作较多的话,可以用With语句将对各个Sheet的操作分别集中到一处,这样看起来比较清楚,如:
With Sheets("Sheet3")
.Activate
.Range("B6:D6").Select
......
End With
With Sheets("Sheet2")
.Activate
......
End With
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看了,试了,你的代码没问题呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询