Excel精英培训网

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

[已解决]请教下,为什么我的这段VBA代码会出问题?

[复制链接]
发表于 2009-9-1 11:54 | 显示全部楼层 |阅读模式

代码及数据格式见附件。

代码在模块中是可以正常运行的。

可是“发货申请单”这张工作表代码中,如果我将最后的两条代码启用的,当改变B3单元格的数值后,代码的运行速度就会变的很慢,而且会将第8行的数据也删除。

我本来的目的是:

改变B3单元格的数据,自动运行宏。

取得数据之后,将表格最后有数据的一行删除。请教下如何修改。

O7VPApLv.rar (14.55 KB, 下载次数: 1)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-9-1 12:07 | 显示全部楼层

因为你的Change没有设定触发条件,你应该限定哪个单元格Change的时候再执行代码。

现在你的情况就是代码执行的同时,单元格的值发生变化而后又触发代码的执行。

回复

使用道具 举报

 楼主| 发表于 2009-9-1 12:33 | 显示全部楼层

能告诉我下怎么设定Change的触发条件吗?

我是用IF来判断的,在第四行:

If Not Intersect(Target, vrange) Is Nothing Then

回复

使用道具 举报

发表于 2009-9-1 12:38 | 显示全部楼层    本楼为最佳答案   

就是下面两句蓝的,没有放到限定里面啊。放进去就好了哦。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim vrange As Range
Set vrange = Range("B3")
If Not Intersect(Target, vrange) Is Nothing Then
    Dim i As Single
    Dim J As Single
    J = 9   '数据起始行
    y = Sheets("采购台帐").Range("c65536").End(xlUp).Row
    Sheets("发货申请单").Range("9:65536").ClearContents
    For i = 2 To y
        If Sheets("采购台帐").Cells(i, 3).Value = Sheets("发货申请单").Range("b3").Value Then
            Sheets("发货申请单").Range("B" & 4) = Sheets("采购台帐").Cells(i, 2)   '供应商
            Sheets("发货申请单").Range("F" & 3) = Sheets("采购台帐").Cells(i, 4)   '项目
            Sheets("发货申请单").Range("B" & J) = Sheets("采购台帐").Cells(i, 4)   '名称
            Sheets("发货申请单").Range("C" & J) = Sheets("采购台帐").Cells(i, 5)   '型号
            Sheets("发货申请单").Range("D" & J) = Sheets("采购台帐").Cells(i, 6)   '数量
            Sheets("发货申请单").Range("E" & J) = Sheets("采购台帐").Cells(i, 7)   '单位
            Sheets("发货申请单").Range("F" & J) = Sheets("采购台帐").Cells(i, 8)   '单价
            Sheets("发货申请单").Range("G" & J) = "=RC[-1]*RC[-3]"   '金额
            J = J + 1
        End If
    Next i
    A = Sheets("发货申请单").Range("G65536").End(xlUp).Row
    Sheets("发货申请单").Rows(A).ClearContents

End If

End Sub

回复

使用道具 举报

 楼主| 发表于 2009-9-1 12:49 | 显示全部楼层

明白了,让代码给绕糊涂了。谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 11:45 , Processed in 0.421077 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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