Excel精英培训网

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

[已解决]对当前工作表Z列不等于变量内容的行赋值

[复制链接]
发表于 2012-4-9 17:38 | 显示全部楼层 |阅读模式
本帖最后由 hcy1185 于 2012-4-9 20:18 编辑

请大师指导!我实在办不了!谢谢   结算大表预调整.rar (52.71 KB, 下载次数: 6)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2012-4-9 20:15 | 显示全部楼层
Sub 结算大表横向计算()
Dim i As Range
With ActiveSheet
  Set i = ActiveSheet.Range("b65536").End(xlUp)
      j = i.Row
  For j = 8 To j
    With Range("g8:g" & j)
         .Formula = "=SUM(H8:L8)"
         .Value = .Value '去公式
    End With
    With Range("f8:f" & j)
         .Formula = "=SUM(G8,M8:P8,-S8,T8:U8)"
         .Value = .Value '去公式
    End With
    With Range("w8:w" & j)
         .Formula = "=SUM(V8+F8)"
         .Value = .Value '去公式
    End With
    Range("f8:w" & j).NumberFormatLocal = "0"
    .UsedRange.Borders.ColorIndex = 5
    Next j
    Set i = Nothing
End With
End Sub

'需要解决的问题1:仅第8行计算正确
'需要解决的问题2:Z列不等于下列内容的行,才赋值
'arr = Array(小计, 系统, 矿建, 土建, 安装, 设备, 其他, 总投资),
'If  Z列<> = arr Then
回复

使用道具 举报

发表于 2012-4-10 09:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2012-4-10 10:06 编辑
  1. Sub 结算大表横向计算()
  2.     N = "#小计系统矿建土建安装设备其他总投资"
  3.     With ActiveSheet
  4.         R = .UsedRange.Rows.Count
  5.         For J = 8 To R
  6.             If InStr(N, .Range("Z" & J).Value) < 1 Then
  7.                 .Range("g" & J).Formula = "=SUM(H" & J & ":L" & J & ")"
  8.                 .Range("f" & J).Formula = "=SUM(H" & J & ":P" & J & ",-S" & J & ",T" & J & ":U" & J & ")"
  9.                 .Range("w" & J).Formula = "=SUM(V" & J & "+F" & J & ")"
  10.             End If
  11.         Next J
  12.         Range("F8:W" & R).NumberFormatLocal = "0"
  13.         .UsedRange.Borders.ColorIndex = 5
  14.         .Range("D8:W" & R) = .Range("D8:W" & R).Value
  15.     End With
  16. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
hcy1185 + 3 赞一个!谢谢zjdh老师! &lt;改为=

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-4-10 10:32 | 显示全部楼层
zjdh 发表于 2012-4-10 09:11

老师您好!
计算之前清除j行f,g,w列内容,下面代码写法对吗?
.Range(Cells(j, "f"), Cells(j, "g"), Cells(j, "w")).ClearContents
回复

使用道具 举报

发表于 2012-4-10 10:55 | 显示全部楼层
Sub 结算大表横向计算()
    N = "#小计系统矿建土建安装设备其他总投资"
    With ActiveSheet
        .Range("G8:G65536,F8:F65536,W8:W65536").ClearContents
        R = .UsedRange.Rows.Count
        For J = 8 To R
            NN = InStr(N, .Range("Z" & J).Value)
            If InStr(N, .Range("Z" & J).Value) < 1 Then
               ..................
    End With
End Sub

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:41 , Processed in 0.601081 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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