吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1709|回复: 27
收起左侧

[经验求助] 【Excel】自动化

[复制链接]
onedayday-wb 发表于 2024-6-20 20:20
500吾爱币
本帖最后由 onedayday-wb 于 2024-6-23 00:54 编辑

各位大佬们,我现在有这么一个需求,还望大家帮忙看看

有这么一个工作簿,明天都会根据当天日期来新建一个sheet表,每天的sheet样式是固定一样的,然后还有一个总表,总表里面汇总每天的数据,那么问题来了,我要怎么在汇总表里面动态的获取每天的sheet里面的数据呢?也就是说,当我每天新建一个sheet表的时候,汇总表可以自动的根据条件(日期+班次+线体)去匹配当天sheet表里的数据。
本来打算用vlookup来匹配,但每天需要新建一个sheet表,就给我整不会了,所以来此求助大家当然,不管是函数还是VBA,还是python,技术不限,只要实现了就行

然后就是在图表工作表里面,有一个数据透视表,然后我想要筛选出最近7天的数据,让图表只显示最近7天的数据,怎么实现呢?不是日期组合功能哦

最后,附文件地址:https://www.lanzouw.com/iIIDs22atp7g     密码:    52pj

最佳答案

查看完整内容

1、已经修复6.20自动变6.2的bug。 2、新增防呆输入,已经存在的数据重复录入会提示已存在。 3、新增按班次添加记录。 其实求和为0的选项本来也不会录入,只会汇总非零的数据。与你之前模板一致。 https://zzzh.lanzout.com/igYfw22hgcid

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
anyi666 + 1 + 1

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zzzh 发表于 2024-6-20 20:20
onedayday-wb 发表于 2024-6-23 00:54
大佬,牛辶
我试了一下,输入6.20号不行,它会自己变成6.2号,还有一个小bug,但似乎 ...

1、已经修复6.20自动变6.2的bug。
2、新增防呆输入,已经存在的数据重复录入会提示已存在。
3、新增按班次添加记录。 其实求和为0的选项本来也不会录入,只会汇总非零的数据。与你之前模板一致。

https://zzzh.lanzout.com/igYfw22hgcid

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
anyi666 + 1 + 1 求成品,学习一下思路
onedayday-wb + 1 + 1 谢谢@Thanks!

查看全部评分

wuaipojie_lbw 发表于 2024-6-20 21:00

1. 使用Excel VBA宏: 您可以创建一个VBA宏来动态链接每个新建的工作表数据到汇总表。这里有一个简单的VBA宏示例,它会自动更新汇总表中的数据:
Sub UpdateSummary()
    Dim wsSummary As Worksheet
    Dim wsDay As Worksheet
    Dim lastRow As Long
    Dim sheetName As String
    Dim matchDate As String
    Dim matchShift As String
    Dim matchLine As String

    ' 设置汇总表
    Set wsSummary = ThisWorkbook.Sheets("汇总表")

    ' 获取今天日期的字符串
    matchDate = Format(Date, "yyyy-mm-dd")
    ' 设置班次和线体条件
    matchShift = "早班" ' 示例
    matchLine = "线体1" ' 示例

    ' 根据日期生成工作表名称
    sheetName = "Data_" & matchDate

    ' 检查工作表是否存在
    On Error Resume Next
    Set wsDay = ThisWorkbook.Sheets(sheetName)
    On Error GoTo 0

    If Not wsDay Is Nothing Then
        ' 找到最后一行
        lastRow = wsSummary.Cells(wsSummary.Rows.Count, "A").End(xlUp).Row + 1

        ' 从当天工作表复制数据到汇总表
        wsDay.Range("A2:C10").Copy Destination:=wsSummary.Range("A" & lastRow)
    Else
        MsgBox "今天的工作表不存在。"
    End If
End Sub

您需要根据实际的工作表名称和数据范围调整代码,并将其放入Excel的VBA编辑器中。
2. 使用Python脚本: 如果您熟悉Python,可以使用Python的openpyxl库来操作Excel文件。以下是一个Python脚本示例,它会读取每个新建的工作表并更新汇总表:

from openpyxl import load_workbook
from datetime import datetime, timedelta

# 打开工作簿
wb = load_workbook('工作簿.xlsx')

# 获取汇总表
ws_summary = wb['汇总表']

# 获取今天的日期
today = datetime.today().strftime('%Y-%m-%d')
sheet_name = 'Data_' + today

# 检查工作表是否存在
if sheet_name in wb.sheetnames:
    ws_day = wb[sheet_name]
    # 假设每天的数据在A2:C10范围内
    for row in ws_day['A2:C10']:
        ws_summary.append([cell.value for cell in row])
else:
    print("今天的工作表不存在。")

# 保存工作簿
wb.save('工作簿.xlsx')

同样,您需要根据实际的工作表名称和数据范围调整脚本。
至于数据透视表筛选最近7天的数据,您可以使用VBA宏来设置数据透视表的筛选器。这里有一个简单的宏示例:

Sub FilterLast7Days()
    Dim wsPivot As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim startDate As Date

    ' 设置图表工作表
    Set wsPivot = ThisWorkbook.Sheets("图表工作表")
    ' 设置数据透视表
    Set pt = wsPivot.PivotTables("数据透视表")

    ' 计算开始日期
    startDate = Date - 7

    ' 设置日期筛选器
    Set pf = pt.PivotFields("日期")
    pf.ClearAllFilters
    pf.PivotFilters.Add Type:=xlDateBetween, Value1:=startDate, Value2:=Date
End Sub

请根据您的数据透视表的实际名称和字段名称进行调整。
sgywzx 发表于 2024-6-20 21:41
 楼主| onedayday-wb 发表于 2024-6-20 22:01
wuaipojie_lbw 发表于 2024-6-20 21:00
1. 使用Excel VBA宏: 您可以创建一个VBA宏来动态链接每个新建的工作表数据到汇总表。这里有一个简单的VB ...

你好,能有成品吗,感谢
 楼主| onedayday-wb 发表于 2024-6-20 22:02
sgywzx 发表于 2024-6-20 21:41
PQ浅浅自动汇总一下,要做到完全符合要求还需要一些时间
https://wwi.lanzoup.com/if0Ub22b3rcd

这个不急的,可以等您消息
爱无所畏 发表于 2024-6-20 23:13
大佬们太热心啦
longhua23 发表于 2024-6-21 11:13
等我有空了帮你看下
longhua23 发表于 2024-6-21 11:19
longhua23 发表于 2024-6-21 11:13
等我有空了帮你看下

需求1:把每日的sheet表里面的内容自动汇总到汇总表内,且汇总表需要保留历史数据。
longhua23 发表于 2024-6-21 11:26
longhua23 发表于 2024-6-21 11:19
需求1:把每日的sheet表里面的内容自动汇总到汇总表内,且汇总表需要保留历史数据。

需求2:在汇总中筛选出近7日数据,按日期进行分类求和,筛选出A班 B班 每个模块的数据。并绘制成图表
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 16:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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