Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1921|回复: 6

[已解决]请各位师傅帮忙解决这个分类的难题

[复制链接]
发表于 2017-3-25 14:47 | 显示全部楼层 |阅读模式
我附件上有三个表格,在录入表格内a列和b列,我录入相关的数据,我希望得到一个代码,当录入表格内b列为正数的,a列和b列同行的数据会进入奖励表格列m列和n列内,当录入表格b列为负数的时候,a列和b列同行的数据会进入考核表格格列m列和n列内,现在的奖励和考核表就是我希望得到的结果,谢谢高手师傅的帮忙。
最佳答案
2017-3-25 14:59
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. If Target.Column <> 2 Then Exit Sub
  4. If Target.Row < 4 Then Exit Sub
  5. If Target = "" Then Exit Sub
  6. If Target > 0 Then
  7.   Sheets("奖励表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  8. ElseIf Target < 0 Then
  9.   Sheets("考核表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  10. End If
  11. End Sub
复制代码

职工月考核.rar

2.13 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-3-25 14:56 | 显示全部楼层
本帖最后由 大灰狼1976 于 2017-3-25 14:58 编辑
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. If Target.Column <> 2 Then Exit Sub
  4. If Target.Row < 4 Then Exit Sub
  5. If Target = "" Then Exit Sub
  6. If Target > 0 Then
  7.   Sheets("奖励表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  8. ElseIf Target < 0 Then
  9.   Sheets("考核表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  10. End If
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2017-3-25 14:59 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. If Target.Column <> 2 Then Exit Sub
  4. If Target.Row < 4 Then Exit Sub
  5. If Target = "" Then Exit Sub
  6. If Target > 0 Then
  7.   Sheets("奖励表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  8. ElseIf Target < 0 Then
  9.   Sheets("考核表").[m65536].End(3).Offset(1).Resize(1, 2) = Target.Offset(, -1).Resize(1, 2).Value
  10. End If
  11. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-3-25 21:20 | 显示全部楼层
谢谢大灰狼1976师傅,但是能不能再帮我修改下,您现在使用的回车就出数据的模式,能不能改成我全部输入完后通过按钮再执行的模式,就是使用sub的模式,麻烦您再修改下行吗,再次谢谢您了。
回复

使用道具 举报

发表于 2017-3-25 22:29 | 显示全部楼层
  1. Sub aaa()
  2. Dim i&, rng As Range, rng1 As Range
  3. For i = 4 To [a65536].End(3).Row
  4.   If Cells(i, 2) > 0 Then
  5.     If rng Is Nothing Then Set rng = Cells(i, 1).Resize(, 2) Else Set rng = Union(rng, Cells(i, 1).Resize(, 2))
  6.   ElseIf Cells(i, 2) < 0 Then
  7.     If rng1 Is Nothing Then Set rng1 = Cells(i, 1).Resize(, 2) Else Set rng1 = Union(rng1, Cells(i, 1).Resize(, 2))
  8.   End If
  9. Next i
  10. rng.Copy Sheets("奖励表").[m65536].End(3).Offset(1)
  11. rng1.Copy Sheets("考核表").[m65536].End(3).Offset(1)
  12. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-3-26 07:23 | 显示全部楼层
谢谢大灰狼1976师傅,你提供的代码正是我所希望的
回复

使用道具 举报

发表于 2017-3-26 21:22 | 显示全部楼层
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 12:35 , Processed in 0.351781 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表