Excel精英培训网

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

[已解决]帮忙做改代码,改了很久没改过来!

[复制链接]
发表于 2022-5-13 16:14 | 显示全部楼层 |阅读模式
请各位帮忙修改下代码,红色框部份

搜狗截图20220513160727.png
最佳答案
2022-5-27 01:20
Sub 按钮5_Click()
Dim arr As Range
Set arr = Range("A2:j8")
ReDim brr(1 To arr.Rows.Count, 1 To 2)

For r = 1 To arr.Rows.Count 'Step 2
If arr(r, "b") = arr(r + 1, "b") Then
flag = arr(r, "j") = "入" And arr(r + 1, "j") = "出"

If flag Then brr(r, 1) = (arr(r + 1, "g") + arr(r + 1, "h") - (arr(r, "g") + arr(r, "h"))) * 24 * 60

flag = arr(r, "j") = "出" And arr(r + 1, "j") = "入"
If flag Then brr(r, 2) = (arr(r + 1, "g") + arr(r + 1, "h") - (arr(r, "g") + arr(r, "h"))) * 24 * 60
End If

Next
[k2].Resize(arr.Rows.Count, 2) = brr
End Sub

翼闸门自动报表.zip

23.57 KB, 下载次数: 19

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-5-14 00:00 | 显示全部楼层
and 写很长 , 不容易判断

------------------------------------
dim 判断 as string
判断 = 判断 & iif( arr(j,9) = "出" , "①" ,"_")
判断 = 判断 & iif( arr(j+1,9) = "入" , "②" ,"_")
判断 = 判断 & iif( ... , "③" ,"_")

if 判断 = "①②③" then

=============================
这样 非常 直观 , 容易检查
回复

使用道具 举报

 楼主| 发表于 2022-5-20 19:56 | 显示全部楼层
砂海 发表于 2022-5-14 00:00
and 写很长 , 不容易判断

------------------------------------

老师您好,
根据你提供的代码,尝试着自己修改,没改过来,不短简是否帮忙帮忙提供个完整的代码!
回复

使用道具 举报

发表于 2022-5-22 13:31 | 显示全部楼层
提问题,代码分析,需说明你的目的,避免大家走弯路。
回复

使用道具 举报

 楼主| 发表于 2022-5-23 09:22 | 显示全部楼层
LeDuWuYe 发表于 2022-5-22 13:31
提问题,代码分析,需说明你的目的,避免大家走弯路。

老师您好,需要将K列与L列,两的公式用代码的形式来运行,代码在模块的,麻烦帮忙抽空改下代码或是重新写个代码,谢谢!
因数据量比采用公式会造成电脑卡死!
搜狗截图20220523091539.png




翼闸门自动报表.zip

14.51 KB, 下载次数: 5

回复

使用道具 举报

发表于 2022-5-27 01:20 | 显示全部楼层    本楼为最佳答案   
Sub 按钮5_Click()
Dim arr As Range
Set arr = Range("A2:j8")
ReDim brr(1 To arr.Rows.Count, 1 To 2)

For r = 1 To arr.Rows.Count 'Step 2
If arr(r, "b") = arr(r + 1, "b") Then
flag = arr(r, "j") = "入" And arr(r + 1, "j") = "出"

If flag Then brr(r, 1) = (arr(r + 1, "g") + arr(r + 1, "h") - (arr(r, "g") + arr(r, "h"))) * 24 * 60

flag = arr(r, "j") = "出" And arr(r + 1, "j") = "入"
If flag Then brr(r, 2) = (arr(r + 1, "g") + arr(r + 1, "h") - (arr(r, "g") + arr(r, "h"))) * 24 * 60
End If

Next
[k2].Resize(arr.Rows.Count, 2) = brr
End Sub
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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