EXCEL 下拉列表更改单元格的值时不能触发worksheet_change事件
本人在Sheet1中插入了一个下拉列表,数据源区域和单元格链接都在Sheet1。但通过下拉列表更改链接单元格的值不能触发worksheet_change事件,如果手动更改...
本人在Sheet1中插入了一个下拉列表,数据源区域和单元格链接都在Sheet1。但通过下拉列表更改链接单元格的值不能触发worksheet_change事件,如果手动更改就可以触发。
worksheet_SelectionChange,如果选了两个单元格,怎么返回这两个值?Range(Target.Address).Value这个好像只能用于选了一个单元格的情况。 展开
worksheet_SelectionChange,如果选了两个单元格,怎么返回这两个值?Range(Target.Address).Value这个好像只能用于选了一个单元格的情况。 展开
2个回答
展开全部
就是这样
通过下拉列表改变单元格数值相当 于通过代码修改单元格数据,不会激活worksheet_change事件
你可以给这个下拉列表框指定一个宏,这个 宏就是 下拉列表框 改变时执行的
通过下拉列表改变单元格数值相当 于通过代码修改单元格数据,不会激活worksheet_change事件
你可以给这个下拉列表框指定一个宏,这个 宏就是 下拉列表框 改变时执行的
更多追问追答
追问
哦,谢谢,再问一下
worksheet_SelectionChange事件,如果选了两个单元格,怎么返回这两个值?Range(Target.Address).Value这个好像只能用于选了一个单元格的情况。
追答
worksheet_SelectionChange 事件是当选区发生变化时会引发
事件的参数就是选区的地址绝对引用
Range(Target.Address).Value 这个写法本身就是错误的,或是多此一举的
target本身就是一个range类型的对象
上面一行直接写成
target.value
我不明白你说的 返回这两个值 是什么意思
举例说明一下
当用户在EXCEL工作表中拖动鼠标,选择一个范围,比如 A1:A2,就会引发 一个worksheet_SelectionChange 事件
这时事件中 target.address="$A$1:$A$2"
由于此时target是一个范围
target.value只能返回这个区域中最左上角单元格的值
如果你要引用范围中每个单元格的值
可以这样写
target.cells(R,C).value
其中 R是行号
C是列号
都是相对于最左上角单元的行号和列号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询