Excel精英培训网

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

[已解决]高手能编两段代码吗?

[复制链接]
发表于 2013-3-21 15:25 | 显示全部楼层 |阅读模式
如题,希望高手慢慢看,要说清楚不容易,慢慢帮我看懂。看懂估计就好编了,只要逻辑正确,没有能难懂大师的代码。

详见附件。 自动追加.rar (10.62 KB, 下载次数: 17)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-21 15:44 | 显示全部楼层
我是来瞧瞧的!!!!!!!!!!!!
回复

使用道具 举报

 楼主| 发表于 2013-3-21 18:43 | 显示全部楼层
求大师帮忙啊
难道对大师来说也很难么?
回复

使用道具 举报

发表于 2013-3-21 18:54 | 显示全部楼层
           看不懂!!
回复

使用道具 举报

 楼主| 发表于 2013-3-21 18:58 | 显示全部楼层
zjdh 发表于 2013-3-21 18:54
看不懂!!

我再想办法表达清楚点,大师都看不懂,就是我表达不清楚了。
回复

使用道具 举报

 楼主| 发表于 2013-3-21 19:30 | 显示全部楼层
zjdh 发表于 2013-3-21 18:54
看不懂!!

上新附件,谢谢大师帮忙啊 自动追加02.rar (12.84 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2013-3-22 12:30 | 显示全部楼层
zjdh 发表于 2013-3-21 18:54
看不懂!!

大师,新附件能看得懂么?
回复

使用道具 举报

发表于 2013-3-22 19:23 | 显示全部楼层    本楼为最佳答案   
simonshaw 发表于 2013-3-22 12:30
大师,新附件能看得懂么?

Sub TJ()
    For I = Range("DO:DO").Column To Range("HK:HK").Column
        If Application.Sum(Range(Cells(13, I), Cells(22, I))) = 0 Then
            W = I
            Exit For
        End If
    Next
    S = Range("K13").Value
    For I = Range("DO:DO").Column To Range("HK:HK").Column
        Range(Cells(13, I), Cells(22, I)).Copy Cells(13, W)
        W = W + 1
        T = Application.Sum(Range(Cells(13, I), Cells(22, I)))
        If S - T < 0 Then
            For J = 13 To 22
                If Cells(J, I) <> "" Then Cells(J, W - 1) = S
            Next
            Exit For
        Else
            S = S - T
        End If
    Next
    For I = Range("DO:DO").Column To Range("HK:HK").Column
        If Application.Sum(Range(Cells(13, I), Cells(22, I))) = 0 Then Columns(I).Hidden = True
    Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-3-23 18:06 | 显示全部楼层
本帖最后由 simonshaw 于 2013-3-23 18:07 编辑
zjdh 发表于 2013-3-22 19:23
Sub TJ()
    For I = Range("DO:DO").Column To Range("HK:HK").Column
        If Application.Sum(R ...

还有个问题请教一下大师:

我把你两次编给我的代码 放在一个工作表里,如果我再复制这个工作表,被复制的表也存在,这个时候我要运行宏问题就来了:因为这两个工作表一模一样,里面都有相同的代码。这个时候只能在一个工作表里运行宏,激活另一个工件表时,再运行宏就没反应了,有反应的却是另一个没被激活的工件表,这个问题怎么办?

虽然复制了工作表,但我只想代码只在激活的工作表里运行,没激活的就不要再运行了。不然数据有错。因为有代码的工作表是要被多次复制在同一个工作簿内使用的。

请大师看下怎么解决。



回复

使用道具 举报

发表于 2013-3-24 07:57 | 显示全部楼层
建立模块,将2段宏都移入模块,按钮就引用模块中的宏即可。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 00:16 , Processed in 0.775794 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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