◆●◆救命◆●◆Range().Select调用失败

树猫 2007-02-12 01:39:29
excel的工作表,用VBA选择某一区块,居然失败了。
Range(Cells(37,1),Cells(37,5)).Select 每次运行到这里就出错了。
提示此方法调用出错。我已将此页设置为当前活动页了啊。

A工作表上有个按钮,按下按钮后,选择B工作表上的那个区域。结果失败!

没辙了。大家帮我分析下,什么问题呢?
...全文
707 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianhao1tianhao 2011-08-02
  • 打赏
  • 举报
回复
谢谢 学习了!
ChinaOBS 2007-02-13
  • 打赏
  • 举报
回复
Private Sub CommandButton1_Click()
Sheets("A").Cells(1, 1).Value = "ABCDE"
With Sheets("B")
.Activate
.Range(.Cells(37, 1), .Cells(37, 5)).Select
End With
End Sub
----------------------------------------------------------------
这个代码,经过测试,应该是没有问题的!!!
Arqui 2007-02-13
  • 打赏
  • 举报
回复
Private Sub CommandButton1_Click()
Sheets("A").Cells(1, 1).Value = "ABCDE"
Sheets("B").Select
ActiveSheet.Range(ActiveSheet.Cells(37, 1), ActiveSheet.Cells(37, 5)).Select
End Sub
shan1119 2007-02-13
  • 打赏
  • 举报
回复
结果 Range(Cells(37, 1), Cells(37, 5)).Select 总是报错!
-------------------------------------------------------
Range(ActiveSheet.Cells(37, 1), ActiveSheet.Cells(37, 5)).Select
树猫 2007-02-13
  • 打赏
  • 举报
回复
sheet.cell ?难道一个CELL一个CELL的选择?
奇怪,一个机器上可以,一个机器上不行!
奇怪了!
shan1119 2007-02-13
  • 打赏
  • 举报
回复
加上sheet来选择cell,你不选择sheet也不会错,保险,就是sheet.cell的方法来用。
树猫 2007-02-13
  • 打赏
  • 举报
回复
天使大虾,我也反复试了。
如果A页上没有那些统计计算的代码,就可以。
如果先对A页的数据进行统计计算,再去选中B页的一个区块就不行了。

奇怪奇怪奇怪!哇呀呀 哇呀呀 哇呀呀 哇呀呀 哇呀呀 哇呀呀 。郁闷死了。
我这是给老婆做的一些代码,为了让她减少工作量的!
大虾们快帮帮我啊,不然老婆不给饭吃,就很严重了!
shan1119 2007-02-13
  • 打赏
  • 举报
回复
我试了,如果你只对一个sheet操作,那么直接用cells没问题,如果出现两个以上的,就必须加上sheet来选择cell了,不知道这么说是不是对的。
树猫 2007-02-13
  • 打赏
  • 举报
回复
按钮在A页上,按下按钮后,先对A页的很多数据进行统计计算。
然后将结算结果写在B页上。
有一区域需要设置格式(37行的1~5列),所以需要首先选中那里。

结果 Range(Cells(37, 1), Cells(37, 5)).Select 总是报错!
shan1119 2007-02-13
  • 打赏
  • 举报
回复
可以的吧,Cells应该是ActiveSheet.Cells的吧
树猫 2007-02-13
  • 打赏
  • 举报
回复
还是不行。孤独大虾,你的代码试了,仍然不行。奇怪了。!
树猫 2007-02-13
  • 打赏
  • 举报
回复
孤独大虾,为什么我的那段代码不行呢。我觉得应该没问题啊。
想不通,解释一下行吗?
树猫 2007-02-13
  • 打赏
  • 举报
回复
这次 天使侠客 的方法 好用了。
谢谢各位热心大虾们。
树猫 2007-02-13
  • 打赏
  • 举报
回复
孤独大虾,你的代码如果放在一个新建的EXCEL里,没有错。
可是放在我正在做的那个东西里,就不行。
所以我觉得很奇怪!
ChinaOBS 2007-02-12
  • 打赏
  • 举报
回复
呵呵,疏忽了,应该用下面的语句:
Private Sub CommandButton1_Click()
Sheets("A").Cells(1, 1).Value = "ABCDE"
With Sheets("B")
.Activate
.Range(.Cells(37, 1), .Cells(37, 5)).Select
End With
End Sub
树猫 2007-02-12
  • 打赏
  • 举报
回复
不好用啊。其实你们2位的方法,我都试过了。不行的。
我也觉得很奇怪,为什么???好奇怪!!!!

Private Sub CommandButton1_Click()
Sheets("A").Cells(1, 1).Value = "ABCDE"
Sheets("B").Activate
Sheets("B").Range(Cells(37, 1), Cells(37, 5)).Select
End Sub

到第三行就出 "程序或对象定义错误" 的错误!
ChinaOBS 2007-02-12
  • 打赏
  • 举报
回复
或者:
Sheets("B").Activate
Sheets("B").Range(Cells(37, 1), Cells(37, 5)).Select


另:如果是做运算或赋值,不必select
Arqui 2007-02-12
  • 打赏
  • 举报
回复
Sheets("B").Select
Sheets("B").Range(Cells(37,1),Cells(37,5)).Select

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧