Excel精英培训网

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

[已解决][求助] 求助:修改完善代码

  [复制链接]
发表于 2012-3-11 09:11 | 显示全部楼层 |阅读模式
本帖最后由 清华 于 2012-3-11 09:15 编辑
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. On Error Resume Next
  3. If Target.Count = 1 Then
  4. If Target = Cells(Rows.Count, "B").End(xlUp) Then
  5. Application.EnableEvents = False
  6. Target.AutoFill Destination:=Range(Target, Cells(Rows.Count, "A").End(xlUp).Offset(0, 1))
  7. Application.EnableEvents = True
  8. Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Select
  9. End If
  10. End If
  11. End Sub
复制代码
求助:修改完善代码,在B列上方输入值后、敲入回车自动把值添加到A列最后一行。
现在问题是A列输入的值与B列最后行的值相同自动添加是错误的。

最佳答案
2012-3-11 10:39
如果是那样的效果,你原来的程序只要把
if Target = Cells(Rows.Count, "B").End(xlUp) Then
改为
If Target.Column = 2 Then
就能达到效果
212.gif

求助:修改完善代码.zip

14.53 KB, 下载次数: 9

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-11 09:25 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-3-11 09:31 | 显示全部楼层
本帖最后由 清华 于 2012-3-11 09:36 编辑
无聊的疯子 发表于 2012-3-11 09:25
看不懂,真头痛!!哎~~


就是A6值是5,B6别自动添加5
A9值是5,B9别自动添加5自动添加数据是错误的意思,
回复

使用道具 举报

发表于 2012-3-11 09:42 | 显示全部楼层
我也看不懂!!   
回复

使用道具 举报

 楼主| 发表于 2012-3-11 09:53 | 显示全部楼层
zjcat35 发表于 2012-3-11 09:42
我也看不懂!!

我描述很差,请操作一遍附件就发现问题了,谢谢
回复

使用道具 举报

发表于 2012-3-11 10:05 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     On Error Resume Next
  3.     If Target.Count = 1 Then
  4.         If Target = Cells(Rows.Count, "B").End(xlUp) Then
  5.             Application.EnableEvents = False
  6.             Target.AutoFill Destination:=Range(Target, Cells(Rows.Count, "A").End(xlUp).Offset(0, 1))
  7.             Target.Offset(0, 2) = "错误"
  8.             Application.EnableEvents = True
  9.             Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Select
  10.         End If
  11.     End If
  12. End Sub
复制代码
你用这个代码试试,错误可以弄出来,但那个正确有点摸不着头脑!  不晓得何时来触发!
既然现在有了错误,其他空单元格就是正确,也可以用了
回复

使用道具 举报

 楼主| 发表于 2012-3-11 10:08 | 显示全部楼层
现在问题是A列输入的值与B列最后行的值相同自动添加是错误的。
图片B4是5,A6,A9输入5,不让B6,B9自动添加5
回复

使用道具 举报

发表于 2012-3-11 10:09 | 显示全部楼层
把这句改为以下语句,不知道是不是你的要求:
Target.AutoFill Destination:=Range(Cells(Target.Row, "A"), Cells(Rows.Count, "A").End(xlUp)).Offset(0, 1)
回复

使用道具 举报

 楼主| 发表于 2012-3-11 10:16 | 显示全部楼层
TTTTT 发表于 2012-3-11 10:09
把这句改为以下语句,不知道是不是你的要求:
Target.AutoFill Destination:=Range(Cells(Target.Row, "A" ...

就是我要的效果,你太埲了,能理解我的东西。
回复

使用道具 举报

发表于 2012-3-11 10:17 | 显示全部楼层
本帖最后由 zjcat35 于 2012-3-11 10:19 编辑
  1. 错了
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 04:51 , Processed in 0.349819 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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