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

如果Target 选定的不是G2单元格,而是G列,怎么写?

一、原因可能为名为Sheet的工作表不存在。
二、Excel提示下标越界是VBA程序运行的一个错误提示,原因有以下几个:
1、引用了不存在的数组元素:下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。
2、声明数组时没有指定元素的数目:引用了不存在的集合成员。
3、使用速写形式的下标,结果指定了错误的元素。
4、引用或操作的工作薄、工作表不存在。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-25
下标越界估计是 Worksheets("sheet")的错误了。既然Target 代表选定的单元格,就肯定是表格的 Worksheet_SelectionChange 事件,所以在单元格对象前不能加工作表对象。
判断对象时不能用等号判断,要用 IS 。要判断选定对象的语句用对象比较也不行,不知何故,但可用下面语句替代:(代码中7代表G列)
If Target.Column = 7 And Target.Count = 65536 Then本回答被提问者和网友采纳
第2个回答  2013-01-28
Worksheets("Sheet")要改成Worksheets("Sheet1"),确定某个表才可以。

If Target = Worksheets("Sheet1").COLUMNS("G")
第3个回答  2013-01-28
if target.column=7 then
就你的代码下标越界而言,是你的表名不对,应该是没有“sheet”这个表
如果你是用的工作簿事件,就要加上判断表名,当前表不用
第4个回答  2013-01-28
这明显是在sheet过程里面的,不用指定表名吧?
直接 If Target.Columns = 7 Then 如果是第七列的单元格
相似回答