由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
NewYork版 - excel VBA问题
相关主题
Who's good with Excel? (大包子)请教学Finance/MBA/Eco毕业在美国能找什么样的工作?
求纽约市excel & VS C++高手周末辅导编程[求助]Excel求和
VB.NET转成VBA怎么把excel表格中图表柱 两两弄到一块呢? (转载)
vb.net读取excel当中不断变化的数据的问题娱乐一下大家 (有奖竞猜)
谁能推荐本VBA的教材,中英文皆可Wall Street IB consultant工作机会
Risk Analyst Contractor Position in Rhode Island没有文化真可悲!
Excel江湖救急万能的NY版啊,求助两个excel的问题
求会计,金融工作或者intern呀,不要钱白干也行~Internship for CUNY IT students
相关话题的讨论汇总
话题: range话题: cell话题: event话题: 数据话题: vba
进入NewYork版参与讨论
1 (共1页)
z******a
发帖数: 363
1
版上搞金融的多,vba高手也不少,所以就在这里问了
想要监测一个range里的所有cell的value是不是有变化
但是这些cell里写的都是函数,都是=if(...,...,...)的形式
如果另外一块range的数值发生了变化,这块range才会有可能变化
而另一块range的接受实时数据的
用了vba里的change event,没有什么作用,如果在range里发生的数值的变化,而if函
数本身没
有变化,change event就被默认不会发生
想问一下有什么办法可以检测到数值本身的变化的吗啊?
谢谢啦~
b******n
发帖数: 370
2
这样的event 可能没有。
你可以不要写if function.
instead, 你用sub 替代 function 往cell里面写。
就是在sub里面计算,然后 update cell的数据。

【在 z******a 的大作中提到】
: 版上搞金融的多,vba高手也不少,所以就在这里问了
: 想要监测一个range里的所有cell的value是不是有变化
: 但是这些cell里写的都是函数,都是=if(...,...,...)的形式
: 如果另外一块range的数值发生了变化,这块range才会有可能变化
: 而另一块range的接受实时数据的
: 用了vba里的change event,没有什么作用,如果在range里发生的数值的变化,而if函
: 数本身没
: 有变化,change event就被默认不会发生
: 想问一下有什么办法可以检测到数值本身的变化的吗啊?
: 谢谢啦~

z******a
发帖数: 363
3
我不知道什么时候数据会发生变化
用sub的话得间隔多久运行一次sub呢
而且我有将近一万个cell
运行一次可能占用资源太多了

【在 b******n 的大作中提到】
: 这样的event 可能没有。
: 你可以不要写if function.
: instead, 你用sub 替代 function 往cell里面写。
: 就是在sub里面计算,然后 update cell的数据。

b******n
发帖数: 370
4
这个方法的问题是可能效率慢点。
其实是用两次 cell change event
大体三个过程。
第一,range 1获取实时数据。
第二,当range 1获取 实时数据后,根据新数据的变化,运行sub, update range 2里
面的数据。这是第一次利用cell change event. 也就是说,你把range 2里面的if
function, 用sub来实现了。在 range 2里面存的不再是公式,而是计算后的数据。这
样就可以利用下面的cell change event了。
第三,当你的sub update range 2后,如果数据改变,cell change event会再次被激
发。你就可以根据变化做其后处理。

【在 z******a 的大作中提到】
: 我不知道什么时候数据会发生变化
: 用sub的话得间隔多久运行一次sub呢
: 而且我有将近一万个cell
: 运行一次可能占用资源太多了

z******a
发帖数: 363
5
在你说的第二个过程里,我的range1里的数据是通过一个外源数据库形成的array获取的
range1里的cell里也是一个函数,并不是hard copy的数据
你怎么才能触发vba运行sub呢?

【在 b******n 的大作中提到】
: 这个方法的问题是可能效率慢点。
: 其实是用两次 cell change event
: 大体三个过程。
: 第一,range 1获取实时数据。
: 第二,当range 1获取 实时数据后,根据新数据的变化,运行sub, update range 2里
: 面的数据。这是第一次利用cell change event. 也就是说,你把range 2里面的if
: function, 用sub来实现了。在 range 2里面存的不再是公式,而是计算后的数据。这
: 样就可以利用下面的cell change event了。
: 第三,当你的sub update range 2后,如果数据改变,cell change event会再次被激
: 发。你就可以根据变化做其后处理。

b******n
发帖数: 370
6
你能不能改 产生 range 1 数据的那个函数?
不是很清楚,你这个实时获取数据过程是具体如何实现的。
我觉得就得在这个部分做改动才行。

取的

【在 z******a 的大作中提到】
: 在你说的第二个过程里,我的range1里的数据是通过一个外源数据库形成的array获取的
: range1里的cell里也是一个函数,并不是hard copy的数据
: 你怎么才能触发vba运行sub呢?

z******a
发帖数: 363
7
通过另一个软件导入excel这些实时数据
所以range1里显示出来的都是一些类似于bloomberg导入excel时所显示出的函数

【在 b******n 的大作中提到】
: 你能不能改 产生 range 1 数据的那个函数?
: 不是很清楚,你这个实时获取数据过程是具体如何实现的。
: 我觉得就得在这个部分做改动才行。
:
: 取的

b******n
发帖数: 370
8
所以是这些函数定时update 数据?
还是你有其他timer控制什么时间update?

【在 z******a 的大作中提到】
: 通过另一个软件导入excel这些实时数据
: 所以range1里显示出来的都是一些类似于bloomberg导入excel时所显示出的函数

z******a
发帖数: 363
9
我没有没有定义函数控制时间update数据
也许软件有一些控制时间update的机制,但我不是很清楚

【在 b******n 的大作中提到】
: 所以是这些函数定时update 数据?
: 还是你有其他timer控制什么时间update?

b******n
发帖数: 370
10
那这条路就行不通了。
你range 2数据改变后,你要做什么操作?

【在 z******a 的大作中提到】
: 我没有没有定义函数控制时间update数据
: 也许软件有一些控制时间update的机制,但我不是很清楚

z******a
发帖数: 363
11
我查了下,似乎可以用calculate event
你知道calculate event怎么能判断出哪个cell被calculated了吗?

【在 b******n 的大作中提到】
: 那这条路就行不通了。
: 你range 2数据改变后,你要做什么操作?

b******n
发帖数: 370
12
calculate event 没有办法去单独判断哪个cell触发了这个event
解决办法是做if 判断。不过你有1万个cell,可能会很花时间。
定义一个全程变量,存储all old value
然后在calculate event里面对每个cell,和他的old value做判断
如果不一样,说明他改变了。进行操作,操作后用新value 覆盖旧value.

【在 z******a 的大作中提到】
: 我查了下,似乎可以用calculate event
: 你知道calculate event怎么能判断出哪个cell被calculated了吗?

z******a
发帖数: 363
13
嗯,问题已解决,用了跟你说的类似的办法
非常感谢!!!!!!!!
1 (共1页)
进入NewYork版参与讨论
相关主题
Internship for CUNY IT students谁能推荐本VBA的教材,中英文皆可
【JOBS】招 Jr. Analyst and Sr. Analyst in NYCRisk Analyst Contractor Position in Rhode Island
有没有人可以教我一点编程Excel江湖救急
Re: Dealer of Cell phone求会计,金融工作或者intern呀,不要钱白干也行~
Who's good with Excel? (大包子)请教学Finance/MBA/Eco毕业在美国能找什么样的工作?
求纽约市excel & VS C++高手周末辅导编程[求助]Excel求和
VB.NET转成VBA怎么把excel表格中图表柱 两两弄到一块呢? (转载)
vb.net读取excel当中不断变化的数据的问题娱乐一下大家 (有奖竞猜)
相关话题的讨论汇总
话题: range话题: cell话题: event话题: 数据话题: vba