Excel精英培训网

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

[已解决]求助VB高手,这个程序该如何完善

[复制链接]
发表于 2016-12-26 14:11 | 显示全部楼层 |阅读模式
有一批文件,要实现以下功能,请高手指点,谢谢!
要实现功能:
1、如G列有数据,则H=G,I=G-H,L=H*J
2、如G列无数据,则跳过。
3、如C列为设备合计,则L=上面设备合计,
4、如C列为材料合计,则L=上面材料合计,

最佳答案
2016-12-26 20:34
改了一下你的代码,请测试:

  1. Sub JGC()
  2.     i = 1
  3.     Do Until ThisWorkbook.ActiveSheet.Cells(i, 2) = ""
  4.         Set dx_workbook = Workbooks.Open(ThisWorkbook.Path & "" & ThisWorkbook.ActiveSheet.Cells(i, 1))
  5.         dx_workbook.Sheets("甲供材明细表").Columns("H:H").Hidden = False
  6.         Sheets("甲供材明细表").Activate
  7.         xrow = Sheets("甲供材明细表").Cells(Rows.Count, 2).End(xlUp).Row
  8.         yrow = 5
  9.         For h = 5 To xrow
  10.             If InStr(Range("C" & h).Value, "合计") Then
  11.                 Range("L" & h).Value = "=SUM(L" & yrow & ":L" & h - 1 & ")"
  12.                 yrow = h + 1
  13.             ElseIf Range("G" & h).Value <> "" Then
  14.                 Range("H" & h).Value = "=G" & h
  15.                 Range("I" & h).Value = "=G" & h & "-H" & h
  16.                 Range("L" & h).Value = "=H" & h & "*J" & h
  17.             End If
  18.         Next h
  19.         i = i + 1
  20.         dx_workbook.Close SaveChanges:=True
  21.         Set dx_workbook = Nothing
  22.     Loop
  23. End Sub
复制代码


ABC.rar

47.06 KB, 下载次数: 9

发表于 2016-12-26 20:34 | 显示全部楼层    本楼为最佳答案   
改了一下你的代码,请测试:

  1. Sub JGC()
  2.     i = 1
  3.     Do Until ThisWorkbook.ActiveSheet.Cells(i, 2) = ""
  4.         Set dx_workbook = Workbooks.Open(ThisWorkbook.Path & "" & ThisWorkbook.ActiveSheet.Cells(i, 1))
  5.         dx_workbook.Sheets("甲供材明细表").Columns("H:H").Hidden = False
  6.         Sheets("甲供材明细表").Activate
  7.         xrow = Sheets("甲供材明细表").Cells(Rows.Count, 2).End(xlUp).Row
  8.         yrow = 5
  9.         For h = 5 To xrow
  10.             If InStr(Range("C" & h).Value, "合计") Then
  11.                 Range("L" & h).Value = "=SUM(L" & yrow & ":L" & h - 1 & ")"
  12.                 yrow = h + 1
  13.             ElseIf Range("G" & h).Value <> "" Then
  14.                 Range("H" & h).Value = "=G" & h
  15.                 Range("I" & h).Value = "=G" & h & "-H" & h
  16.                 Range("L" & h).Value = "=H" & h & "*J" & h
  17.             End If
  18.         Next h
  19.         i = i + 1
  20.         dx_workbook.Close SaveChanges:=True
  21.         Set dx_workbook = Nothing
  22.     Loop
  23. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2016-12-28 15:26 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 17:14 , Processed in 2.823700 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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