Excel精英培训网

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

[已解决]请大家看看,这条公式的工作,能不能用VBA来完成

[复制链接]
发表于 2012-11-28 20:29 | 显示全部楼层 |阅读模式
本帖最后由 gzminge 于 2012-11-29 10:21 编辑

这表累坏人啊.part01.rar (341.8 KB, 下载次数: 1)
发表于 2012-11-28 20:33 | 显示全部楼层
本帖最后由 fjmxwrs 于 2012-11-28 20:35 编辑

要VBA处理,请上传.xlsm格式文件,并讲清需求,你的描述确实没能看懂
回复

使用道具 举报

 楼主| 发表于 2012-11-28 20:53 | 显示全部楼层
fjmxwrs 发表于 2012-11-28 20:33
要VBA处理,请上传.xlsm格式文件,并讲清需求,你的描述确实没能看懂

用1楼的附件来做可以吗?
在区域O9:GNS470中,遂行的计算符号“●”的最大列号,减去行中空格的最大列号,在GNS475:GNS936返回两者差值。
并且点击一下按钮,计算区域就往右增加一列(比如点一下就变为O9:GNT470),然后把计算的结果输出在GNT475:GNT936,就这样遂列遂列往右增加。
回复

使用道具 举报

 楼主| 发表于 2012-11-29 07:58 | 显示全部楼层
自已顶起!               
回复

使用道具 举报

发表于 2012-11-29 08:14 | 显示全部楼层
gzminge 发表于 2012-11-29 07:58
自已顶起!

假如没有空怎么办啊? 我往下复制了公式 但好像和你模拟的结果不一样怎么回事啊?
未命名.jpg
回复

使用道具 举报

 楼主| 发表于 2012-11-29 09:13 | 显示全部楼层
孤单无所谓 发表于 2012-11-29 08:14
假如没有空怎么办啊? 我往下复制了公式 但好像和你模拟的结果不一样怎么回事啊?

我是随便搞的!模拟结果只是参考.
回复

使用道具 举报

 楼主| 发表于 2012-11-29 16:48 | 显示全部楼层
顶起来                 
回复

使用道具 举报

发表于 2012-11-30 10:39 | 显示全部楼层    本楼为最佳答案   
Sub cha()
Dim a, b, c, rng, rn
       On Error Resume Next
For a = 9 To 470
  b = 0
        c = 5115
               Set rng = Range("o" & a, "gns" & a).Find("*", , , , , xlPrevious)
                        Set rn = Range("o" & a, "gns" & a).Find("", , , , , xlPrevious)
           b = rng.Column
      c = rn.Column
If b - c <> 0 Then
            Range("gns" & a + 466) = b - c
Else
            Range("gns" & a + 466) = 0
End If
         Next

End Sub
  1. =MATCH("々",A9:GNS9)-MAX(IF(O9:GNS9="",COLUMN(O:GNS),))
复制代码
VBA我水平太差 代码太慢。。。还是优化下公式来的快{:301:}

评分

参与人数 1 +1 收起 理由
gzminge + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-11-30 18:01 | 显示全部楼层
孤单无所谓 发表于 2012-11-30 10:39
Sub cha()
Dim a, b, c, rng, rn
       On Error Resume Next

谢谢!现在刚回到家,明天到单位再测试!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 17:02 , Processed in 0.579965 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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