[算表] 储存格变动时执行具集

楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 21:01:58
软件:Excel
版本:2013
我本来使用Private Sub Worksheet_Change
A1储存格有变动时
Call 具集
我用手动变动A1时会call 具集
但我用条件式的情况下就不会call了
我A1=if(b1=1,1,””) 但用这方法就不会call具集了
请问有什么办法用条件式的情况下会执行具集
作者: newacc (XD)   2019-11-15 21:41:00
想到的方式是把A1值先存到一个全域变量里触发Worksheet_Change后判断A1.Value是否相同相同不做事,不同的话先更新全域变量再call宏
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 21:48:00
谢谢newacc 我现在就是碰到a1储存格变动时不会触法具集
作者: soyoso (我是耀宗)   2019-11-15 21:50:00
是宏,不是具集,另外触"发"n大所回文,会于储存格a1变动时触发宏因为worksheet_change时判断a1和先前将a1写入变量的值是否相同,不同就call 程序
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 21:58:00
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Address = "$A$1" ThenCall LINE1End IfEnd Sub我现在的写法是这样可以请问如何修改吗 谢谢
作者: soyoso (我是耀宗)   2019-11-15 21:59:00
先宣告个全域变量,在模组内判断if 储存格a1 <> 全域变量 then全域变量=储存格a1call 程序end ifworkbook_open触发时就,全域变量=储存格a1的值
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:08:00
我现在卡住的地方 是我a1的储存格是用公式 但公式的变动让储存格的值变动 无法触法Worksheet _Change
作者: soyoso (我是耀宗)   2019-11-15 22:09:00
是的,这篇的回文就是在解决a1储存格用公式且触"发"再次提醒是触"发"不是触"法"如 https://i.imgur.com/wn3zsBJ.gifva1为公式(以内文公式),b1为1或非1时触发(测试是以msgbox)但当a1已是空字串,而更改b1为非1的值时,因为a1会和全域变量来判断都是空字串,所以就不触发因此回文方面是符合a1公式的变动让储存格值变动而执行接下来call 程序的动作
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:26:00
抱歉我用一样的方法还是不行可以请你看一下吗 谢谢
作者: soyoso (我是耀宗)   2019-11-15 22:29:00
将宏贴到回文或内文看看
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:31:00
https://reurl.cc/GkGrVv 谢谢上面是档案的缩网址感谢你
作者: soyoso (我是耀宗)   2019-11-15 22:34:00
回文21:59~22:02的部分,原po都没有做和target.address都没有关系了
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:36:00
抱歉因为那个 我不懂 不好意思
作者: soyoso (我是耀宗)   2019-11-15 22:37:00
目的是该工作表任何一个储存格变动触发worksheet_change时就判断先前a1写入全域变量的值和触发后a1的值是否有改变而非去判断所触发储存格target位置字串range.address是否"a1"
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:41:00
可以请问这样怎么写吗? 我不太懂
作者: soyoso (我是耀宗)   2019-11-15 22:42:00
1.先在模组内宣告个全域变量。已存在模组或新增模组内都可
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:43:00
因为我工作表 会接DDE资料 并不会手动 去变动
作者: soyoso (我是耀宗)   2019-11-15 22:45:00
2.workbook_open内将该变量=a1,开启时就将a1的值写入3.22:00~22:01的动作if range("a1") <> 变量名称 then变量名称 = range("a1")call LINE1end if变量型态就依实际宣告
楼主: xxyyzzxyz627 (MrWUYUAN)   2019-11-15 22:58:00
太感谢你了 用好了谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com