Excel精英培训网

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

[已解决]还是引用的老问题,求代码或者公式

[复制链接]
发表于 2012-11-1 19:10 | 显示全部楼层 |阅读模式
如附件,在论坛好长时间了,用公式一直没能解决,所以看看有木有其它方法,求指教,感谢
最佳答案
2012-11-1 19:59
Sub TEST()
  Range("C2:C50").ClearContents
  ARR = Range("B2:D" & Range("B65536").End(3).Row)
  For I = UBound(ARR) To 1 Step -1
    If ARR(I, 3) <> "" Then
      K = 0
      For J = 1 To Range("E2") + 2  '设定最多连续停产2天,若超过2天则修改
         If ARR(I - J, 1) <> "停产" Then
           K = K + 1
           If K = Range("E2") Then ARR(I - J, 2) = ARR(I, 3): Exit For
        End If
      Next
      End If
    Next
  Range("B2").Resize(UBound(ARR), 3) = ARR
End Sub

新建 Microsoft Office Excel 工作表 (2-2).rar

162.05 KB, 下载次数: 6

发表于 2012-11-1 19:56 | 显示全部楼层
本帖最后由 zjdh 于 2012-11-1 20:04 编辑

排产.rar (9.7 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2012-11-1 19:59 | 显示全部楼层    本楼为最佳答案   
Sub TEST()
  Range("C2:C50").ClearContents
  ARR = Range("B2:D" & Range("B65536").End(3).Row)
  For I = UBound(ARR) To 1 Step -1
    If ARR(I, 3) <> "" Then
      K = 0
      For J = 1 To Range("E2") + 2  '设定最多连续停产2天,若超过2天则修改
         If ARR(I - J, 1) <> "停产" Then
           K = K + 1
           If K = Range("E2") Then ARR(I - J, 2) = ARR(I, 3): Exit For
        End If
      Next
      End If
    Next
  Range("B2").Resize(UBound(ARR), 3) = ARR
End Sub
回复

使用道具 举报

 楼主| 发表于 2012-11-1 20:19 | 显示全部楼层
zjdh 发表于 2012-11-1 19:56

你的代码非常好,我刚学VBA,看的不是太懂,你可以注释下吗,还有我不想引用别的单元格,直接在代码里设置提前几天就是几天,还有就是也不想使用按钮,当打开工作表时或者D列的数值发生变化时自动运行,不知可以吗?
回复

使用道具 举报

发表于 2012-11-1 20:51 | 显示全部楼层
本帖最后由 zjdh 于 2012-11-1 20:58 编辑
菜鸟一位 发表于 2012-11-1 20:19
你的代码非常好,我刚学VBA,看的不是太懂,你可以注释下吗,还有我不想引用别的单元格,直接在代码里设置 ...


你看不懂代码?
Range("E2") 替换成天数就可以啦!
回复

使用道具 举报

发表于 2012-11-1 20:53 | 显示全部楼层
本帖最后由 zjdh 于 2012-11-1 20:55 编辑

要在D列的数值发生变化时自动运行,很容易的,写个change事件引用一下就可以啦!
如此简单的代码你都看不懂,如何引用到其他地方?
回复

使用道具 举报

 楼主| 发表于 2012-11-1 20:59 | 显示全部楼层
zjdh 发表于 2012-11-1 20:53
要在D列的数值发生变化时自动运行,很容易的,写个change事件引用一下就可以啦!
如此简单的代码你都看不懂 ...

谢谢老师的指点,我就是一只菜鸟,刚刚学习VBA,说老实话,有好多代码单词我都要一个个的去查才知道,不好意思,麻烦您了,非常感谢
回复

使用道具 举报

发表于 2012-11-1 21:08 | 显示全部楼层
我的代码是最基本的语句,可以说没法注释了。
建议你到http://www.excelpx.com/forum.php?mod=viewthread&tid=186721
下载一个解释器。
回复

使用道具 举报

 楼主| 发表于 2012-11-1 21:21 | 显示全部楼层
zjdh 发表于 2012-11-1 21:08
我的代码是最基本的语句,可以说没法注释了。
建议你到http://www.excelpx.com/forum.php?mod=viewthread& ...

非常感谢老师,我下了,很好用,

点评

建议楼主学习评最佳,帮助贴中有介绍。  发表于 2012-11-2 11:34
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 10:31 , Processed in 0.509900 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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