excel VBA, If Target = Worksheets("Sheet").Range("G2") Then 下标越界 ??

如果Target选定的不是G2单元格,而是G列,怎么写?... 如果Target 选定的不是G2单元格,而是G列,怎么写? 展开
 我来答
Excel小奇
2015-10-22 · 知道合伙人软件行家
Excel小奇
知道合伙人软件行家
采纳数:902 获赞数:6175
EXCEL图书作者,Microsoft 认证Excel专家。

向TA提问 私信TA
展开全部
一、原因可能为名为Sheet的工作表不存在。
二、Excel提示下标越界是VBA程序运行的一个错误提示,原因有以下几个:
1、引用了不存在的数组元素:下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。
2、声明数组时没有指定元素的数目:引用了不存在的集合成员。
3、使用速写形式的下标,结果指定了错误的元素。
4、引用或操作的工作薄、工作表不存在。
姓王的wy451

推荐于2016-07-25 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8862万
展开全部
下标越界估计是 Worksheets("sheet")的错误了。既然Target 代表选定的单元格,就肯定是表格的 Worksheet_SelectionChange 事件,所以在单元格对象前不能加工作表对象。
判断对象时不能用等号判断,要用 IS 。要判断选定对象的语句用对象比较也不行,不知何故,但可用下面语句替代:(代码中7代表G列)
If Target.Column = 7 And Target.Count = 65536 Then
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩哥奕弟
2013-01-28 · 杂七杂八想到什么就是什么
浩哥奕弟
采纳数:381 获赞数:956

向TA提问 私信TA
展开全部
Worksheets("Sheet")要改成Worksheets("Sheet1"),确定某个表才可以。

If Target = Worksheets("Sheet1").COLUMNS("G")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太极健1969
2013-01-28 · TA获得超过9033个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3604万
展开全部
if target.column=7 then
就你的代码下标越界而言,是你的表名不对,应该是没有“sheet”这个表
如果你是用的工作簿事件,就要加上判断表名,当前表不用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
crazy0qwer
2013-01-28 · TA获得超过3299个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1311万
展开全部
这明显是在sheet过程里面的,不用指定表名吧?
直接 If Target.Columns = 7 Then 如果是第七列的单元格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式