Excel精英培训网

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

写了一个拷贝函数,没有行通,谁帮我看看

[复制链接]
发表于 2012-5-26 00:15 | 显示全部楼层 |阅读模式
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Row = 9 Then
         Call autoAutoFill("b9", "47018", "d3", "扫描记录")
    End If
End Sub

Sub autoAutoFill(ByVal Range1 As String, ByVal Sh1 As String, ByVal Range2 As String, ByVal Sh2 As String)
    Dim Lie As Integer
    Lie = Range(Range2).Columns
    Dim Hang As Integer
    Hang = Sheets(Sh2).Cells(65536, Lie).End(xlUp).Row + 1
    Sheets(Sh2).Cells(Hang, Lie).Value = Sheets(Sh1).Range(Range1).Value
End Sub
我想达到的要求是,当第9行改动时,把47018工作表中的b9列里的数据复制到扫描记录工作表里d3所在列里的第一个空白单元格里面,可是运行是提示溢出。什么意思》是不是没有写对,还是哪儿要改正一下~请帮忙改正一下,谢谢~~
 楼主| 发表于 2012-5-26 00:23 | 显示全部楼层
把Lie改成Long类型不溢出了,但是问题来了,下面又提示我对象定义错误
回复

使用道具 举报

发表于 2012-5-26 14:54 | 显示全部楼层
s399091619 发表于 2012-5-26 00:23
把Lie改成Long类型不溢出了,但是问题来了,下面又提示我对象定义错误

只是Copy值何必那么复杂

47018 表中的Change事件 和 SelectChange 事件 配合着用就成了



  1. Dim Zhi As String
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.   If Target.Count > 1 Then Exit Sub
  4.     If Target.Row = 9 And Target.Value <> Zhi Then
  5.       Sheets("扫描记录").Range("d65536").End(xlUp).Offset(1) = Range("B9").Value
  6.     End If
  7. End Sub

  8. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  9.   If Target.Count > 1 Then Exit Sub
  10.   If Target.Row = 9 Then Zhi = Target.Value
  11. End Sub


复制代码

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 15:57 , Processed in 0.220043 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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