100分求助_EXCEL中VBA响应单元格输入事件

因生产现场统计工作需要,我想用VBA程序实现对某一单元格中数据改变的响应事件(我不知道我用词准不准)。我是想用一个EXCEL的多个页表,实现对另一个页表(实际上是另一个E... 因生产现场统计工作需要,我想用VBA程序实现对某一单元格中数据改变的响应事件(我不知道我用词准不准)。

我是想用一个EXCEL的多个页表,实现对另一个页表(实际上是另一个EXCEL的一个页表)。
如图:想用第一个页表,实现对第二个页表的输入和修改。
第一个页表只对应第二个页表中的某几列(图是简单化了的)。

说明:
1、第二个页表是最终要得到的表,前两项“批次”、“型号”是提前输入第二个页表中的。其中“批次”一项是唯一的,没有重复,“型号”一项,会有些重复。

2、第二个页表,是某一“批次”的产品在生产过程的所有工序(约50多道工序)所有良品和不良品的数据的简化版。分布在几个车间中,要各自统计纸档,并输入电子档。

3、第二个表的每一行,对应某个唯一标识的“批次”的所有数据。
4、第一个表,只是对应第二个表中某几列的数据,用来实现读取和输入(修改)。这个表就是现场用纸档记录的数据,交上来后,输入电子档的。

我想,把第一个表(实际上有多个)设计的与纸档表完全一样,并通过在第一个表的手工输入来实现对第二个表的同步输入。因为现场的纸档表太多。最终是要合并到一个表格中,行数、列数都很多,不方便输入、确认及查找错误。

我想实现以下功能:
当在第一个表中的“批次”的单元格输入对应的批次代码(如:第一行的,CKW10B26L)后
1、型号后面的单元格显示对应的型号,如对于CKW10B26L批次的“型号”是054040A(这个是用来在输入数据时,初步确认一下,显示的型号与纸档的是否一致,尽管有重复,但一般没问题),同时,读取对应的其它项的数值,如果没有数据,就显示0.
2、查找到对应的“批次”(对应的某一行后),通过显示的“型号”确认与纸档一致后,在第一表中,输入相应项的数值,并自动写入第二表中对应的项中。

不知道,说明白了没有。如果有高手明白,希望能帮我写一下程序。

或者指点一下核心内容:
1、在VBA程序中,如何“知道”某个单元格的值被修改了?,即响应单元格被“选中”后,光标又移开(输入结束)了。
展开
 我来答
fywlly
2010-06-11 · 超过22用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:43.6万
展开全部

你这不需要编写VBA,公式完全可以解决问题,单元格、工作表如图,公式如下:

1、型号的公式“=VLOOKUP(B1,Sheet2!A2:H6,2)”

2、工序1数量1的公式“=VLOOKUP(B1,Sheet2!A2:H6,3)”

3、工序2数量1的公式“=VLOOKUP(B1,Sheet2!A2:H6,4)”

4、工序3数量1的公式“=VLOOKUP(B1,Sheet2!A2:H6,5)”

5、工序1不良项1的公式“=VLOOKUP(B1,Sheet2!A2:H6,6)”

6、工序2不良项1的公式“=VLOOKUP(B1,Sheet2!A2:H6,7)”

7、工序3不良项1的公式“=VLOOKUP(B1,Sheet2!A2:H6,8)”

修改“批次”就可以啦。若不明白可以向我索要Excel电子版文件。

帐号已注销
2010-06-12 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2874万
展开全部
没有具体表格,不好编写实际的VBA,下面是我的VBA基本流程

'使用Change事件
'使用Target.Address获取目标地址
'表一中批次在a2 ,
Private Sub Worksheet_Change(ByVal Target As Range)
判断Target.Address (更改数据的单元格)是否在规定的数据区域内
否--》退出sub
是--》判断 Target.Address 是否等于 range("a2").Address(批次的地址a2)
是--》 执行查找并显示
否--》 判断 Target 是否为 可更改的数据,
是--》 在表二中找到当前批次所在的行,并更改数据
否--》 退出sub
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
方括号
2010-06-11 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.7万
采纳率:55%
帮助的人:1.8亿
展开全部
感觉有些乱,无法了解你的意图。

单元格修改事件是Change。即
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Target.Address表示目标地址。
单元格值可以用以下几种方法取得。
ActiveCell
Range(Target.Address)
Cells(Target.Row, Target.Column)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dr_zxp
2010-06-11 · TA获得超过861个赞
知道小有建树答主
回答量:765
采纳率:100%
帮助的人:857万
展开全部
alt+F11打开VBA
左边点ThisWorkBook,右边选择WorkBook,事件选择SheetChange

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Worksheets("Sheet1").Activate

msbox Str(ActiveCell.Address)

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ebjcyp
2010-06-14 · TA获得超过2608个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:315万
展开全部
楼上已经讲得很详细了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式