EXCEL 下拉列表更改单元格的值时不能触发worksheet_change事件

本人在Sheet1中插入了一个下拉列表,数据源区域和单元格链接都在Sheet1。但通过下拉列表更改链接单元格的值不能触发worksheet_change事件,如果手动更改... 本人在Sheet1中插入了一个下拉列表,数据源区域和单元格链接都在Sheet1。但通过下拉列表更改链接单元格的值不能触发worksheet_change事件,如果手动更改就可以触发。
worksheet_SelectionChange,如果选了两个单元格,怎么返回这两个值?Range(Target.Address).Value这个好像只能用于选了一个单元格的情况。
展开
 我来答
不想起名字了99
推荐于2017-12-16 · TA获得超过1695个赞
知道大有可为答主
回答量:2708
采纳率:76%
帮助的人:727万
展开全部
就是这样
通过下拉列表改变单元格数值相当 于通过代码修改单元格数据,不会激活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是列号
都是相对于最左上角单元的行号和列号
苗子8898
2020-11-26
知道答主
回答量:4
采纳率:0%
帮助的人:2102
展开全部
解决方法:
1.在一台能正常运行你的EXCEL的电脑上,在开始菜单里输入“%temp%”,找到如图文件夹EXCEL8.0,复制MSForms.exd;
2.再到你出问题的电脑上同一位置把这个文件替换掉,就可以正常运行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式