Excel精英培训网

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

求助

[复制链接]
发表于 2022-6-22 11:06 | 显示全部楼层 |阅读模式
哪位大神能帮忙看下怎么从汇总表提取实领大于应领的数据和实领小于应领的数据,能帮写个程序不,或者还有其他什么办法,谢谢各位了。

劳保发放表 - 副本.rar

23.2 KB, 下载次数: 10

发表于 2022-6-23 10:31 | 显示全部楼层
  1. Sub test()
  2.     Dim arr, brr(), crr(), k As Integer, i As Integer, s As Integer, ss As Integer
  3.     Dim m, n
  4.     arr = Sheet1.Range("a6:am" & Sheet1.Range("c1000").End(3).Row)
  5.     ReDim brr(1 To 100, 1 To UBound(arr, 2) - 4)
  6.     ReDim crr(1 To 100, 1 To UBound(arr, 2) - 4)
  7.    
  8.     For k = 1 To UBound(arr)
  9.         If arr(k, 3) <> "" Then
  10.             s = 0: ss = 0
  11.             For i = 8 To UBound(arr, 2) Step 2
  12.                 If arr(k, i) > arr(k, i + 1) Then
  13.                     If s = 0 Then m = m + 1: s = s + 1
  14.                     brr(m, 2) = arr(k, 3)
  15.                     brr(m, i - 4) = arr(k, i) - arr(k, i + 1)
  16.                 End If
  17.                 If arr(k, i) < arr(k, i + 1) Then
  18.                     If ss = 0 Then n = n + 1: ss = ss + 1
  19.                     crr(n, 2) = arr(k, 3)
  20.                     crr(n, i - 4 + 1) = arr(k, i) - arr(k, i + 1)
  21.                 End If
  22.             Next i
  23.         End If
  24.     Next k
  25.    
  26.     Sheet3.Range("a5").Resize(UBound(brr), UBound(brr, 2)) = brr
  27.     Sheet5.Range("a5").Resize(UBound(crr), UBound(crr, 2)) = crr
  28. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 18:28 , Processed in 1.366656 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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