boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Actuary版 - 一个Excel的问题,专家大拿请帮看一下
相关主题
求excel高手帮忙,麻烦斑竹先别删。
This is not fun! Can't wait for Excel 2007 to be in office!
精算工作中用的软件
找工作感想
紧急面试求助(包子谢)
请内推entry level精算职位
强求内推Entry Level精算职位
求VBA sample (转载)
请教做过FAP module EOM1的XDJM一个enhanced worksheet问题
Excel求教!
相关话题的讨论汇总
话题: change话题: column话题: macro话题: worksheet话题: cell
进入Actuary版参与讨论
1 (共1页)
c*d
发帖数: 53
1
worksheet里有一个cloumn的数据(text, number都有),大概一百个左右,
有什么办法可以实时监测到它们任何一个/多个cell的变化?比如column number是A
的话,A4从0.5变成0.9,A50从aaa变成aa或bbb?
现在想到的办法是用concatenate function,先把当前的所有数据的值存一个
copy在别的地方,然后和concatenate的结果比较。但是这样的话,这个值因为
是将近一百个cell的合集,可能会太大。不知道有没有更好的办法实现这样的监测
呢?多谢了
G*****u
发帖数: 1222
2
你google下Worksheet_Change Event
你在对应的sheet上加入一个worksheet_change的macro 把变动的值输入到另外一个
sheet上
G*****u
发帖数: 1222
3
Sub inputvalue()
Sheets("Sheet2").Cells(ActiveCell.Row - 1, ActiveCell.Column) = ActiveCell.
Offset(-1, 0).Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Call inputvalue
End Sub
帮你写了两个macro
假定你data在sheet1上
第一个macro可以把变动的数据传送到sheet2同样位置的cell中
第二个macro在数值变动的时候call第一个macro
你看看是不是你需要的东西
好运
a********t
发帖数: 1810
4
应该不是,他问的不是很清楚,不知道他想干啥,问问题前,最好把想问的整理一下,表达
明白
c*d
发帖数: 53
5
没想到那么kuai就有回复,先多谢了
正在查有关change event的,不过感觉这个功能是不是对下面那种情况没法正确识别:
就是如果任何cell的值先是改变,然后有变回来,比如A4原先是0.5,被改成0.9,后
有改回0.5,这种情况我是希望被认为没有变化的。如果用change event的话,也可以
做到吗?再次多谢。
c*d
发帖数: 53
6
多谢gaminyu的热情帮忙,同时接受accountant的批评,我自己也觉得
描述的太不清楚问的太乱了,关键是从小语文就差。
是这样,在用excel做一个模型,模型的其中一个worksheet上是用户的
输入,一共30个columns,每个column有将近100个输入,有数字的,有
text的,想在每个column上加一个indicator,如果本column任何一个
cell的值有变化,就提醒用户,需要重新计算(计算部分是靠button激活
macro另外进行的)。现在我用的方法是,在每个column下加了公式,
比如column C, 就是C110=concatenate(C1,C2,C3,...C100),然后用
macro先把公式的值给拷贝到另一个cell(例如C111),然后indicator
用公式if(C110=C111,"Y","N")来实现实时监测
这个方法现在的潜在问题是,最后这个C110和C111的字符串可能会太长,
而且因为有30个这样的column,所以会有30个这样的字符串。excel做的这个
模型本身就已经很大了,不希望size再增大太多,所以想请教一下有没有更
好的办法实现这个需要的功能?
G*****u
发帖数: 1222
7

你vba用的多吗?
在worksheet_change这个macro中你只需要插入一个if statement
如果change的cell是你的target 就改变C110成y 不然的话就保持在n

【在 c*d 的大作中提到】
: 多谢gaminyu的热情帮忙,同时接受accountant的批评,我自己也觉得
: 描述的太不清楚问的太乱了,关键是从小语文就差。
: 是这样,在用excel做一个模型,模型的其中一个worksheet上是用户的
: 输入,一共30个columns,每个column有将近100个输入,有数字的,有
: text的,想在每个column上加一个indicator,如果本column任何一个
: cell的值有变化,就提醒用户,需要重新计算(计算部分是靠button激活
: macro另外进行的)。现在我用的方法是,在每个column下加了公式,
: 比如column C, 就是C110=concatenate(C1,C2,C3,...C100),然后用
: macro先把公式的值给拷贝到另一个cell(例如C111),然后indicator
: 用公式if(C110=C111,"Y","N")来实现实时监测

c*d
发帖数: 53
8
vba刚开始用不久。
在试着理解这两段macro,有几个问题:
第一个就是把sheet1的值存到sheet2上,为什么不能直接存而
是要offset -1呢?
第儿个是在sheet1上cell值有变动的时候启动第一个macro,
那怎么能让他知道哪些cells变动的时候需要激活这个macro呢?
(我的情况是那100个cells里任何一个或多个有变化都需要,除了
那100个之外的cells有变化都不要)。另外变化是真正的变化,
比如C10从1变成2,如果C10先从1变成2,然后又从2变成1,这种
情况不希望indicator/flag显示参数变了,应该是没变才对,
用worksheet_change event可以实现吗?

ActiveCell.

【在 G*****u 的大作中提到】
: Sub inputvalue()
: Sheets("Sheet2").Cells(ActiveCell.Row - 1, ActiveCell.Column) = ActiveCell.
: Offset(-1, 0).Value
: End Sub
: Private Sub Worksheet_Change(ByVal Target As Range)
: Call inputvalue
: End Sub
: 帮你写了两个macro
: 假定你data在sheet1上
: 第一个macro可以把变动的数据传送到sheet2同样位置的cell中

y*******5
发帖数: 5023
9
Not sure if this is what you want.
1. Insert a new column, paste original value
2. Insert another column, for first row, add formula: if(b1=a1,"n","y"), copy
formula to whole column
3. Anywhere on the sheet, add formula: if(isna(vlookup("y",$c:$c,1,false)),"
no change","change")
4. If there is change, you can find it using vlookup on "y"
1 (共1页)
进入Actuary版参与讨论
相关主题
Excel求教!
重新说明昨晚求助excel的问题,斑竹千万先别删,多谢了!
求excel高手帮忙,麻烦斑竹先别删。
求excel高手帮忙,麻烦斑竹先别删。
还是那个excel问题,做了个宏,麻烦帮忙检查一下,谢谢了。
求excel高手帮忙,麻烦斑竹先别删。
紧急求助Excel Vlookup问题
这里人多,借块地请教问题
关于excel.一般需要知道啥功能?
Excel里面不同worksheet的数据能互相引用么?
相关话题的讨论汇总
话题: change话题: column话题: macro话题: worksheet话题: cell