基于今日日期插入数据并更新Charts工作表柱状图的VBA需求
解决方案:按日期插入数据并更新指定图表
这里直接给你实现需求的完整VBA代码,同时拆解关键逻辑帮你理解:
核心需求对应实现
- 找到Summary工作表A列中手动填写的今日日期对应的行,插入其他工作表的指定数据
- 将当日最新结果同步到
charts工作表的柱状图,确保图表仅展示最新数据
完整实现代码
Sub Worksheets_Summary() Dim OldSheet As Worksheet Dim NewSheet As Worksheet Dim Cell As Range Dim ColNum As Integer Dim RwNum As Long Dim book As Workbook Set book = ThisWorkbook Set NewSheet = book.Worksheets("Summary") ' 定位今日日期对应的行号 RwNum = NewSheet.Columns(1).Find(Date).Row ColNum = 1 ' 遍历所有工作表,跳过Summary表 For Each OldSheet In book.Worksheets If OldSheet.Name <> "Summary" Then ColNum = ColNum + 1 ' 给每个工作表创建跳转超链接作为表头 NewSheet.Cells(1, ColNum).Formula _ = "=HYPERLINK(""#""&CELL(""address"",'" & OldSheet.Name & "'!A1)," _ & """" & OldSheet.Name & """)" ' 将对应工作表的B11数据写入目标行 NewSheet.Cells(RwNum, ColNum).Value = OldSheet.Range("B11").Value End If Next OldSheet ' 自动调整列宽优化显示 NewSheet.UsedRange.Columns.AutoFit End Sub
关键逻辑说明
- 日期行定位:通过
NewSheet.Columns(1).Find(Date).Row精准找到Summary表A列中匹配今日日期的行 - 工作表遍历与数据写入:跳过Summary表本身,为每个其他工作表创建可跳转的超链接表头,并把该工作表B11单元格的值写入日期对应的目标行
- 显示优化:最后自动调整列宽,让数据展示更美观
额外注意事项
- 代码运行后,Summary工作表和Dashboard工作表会同步更新对应结果
- 要实现
charts工作表柱状图仅显示最新结果,需确保该图表的数据源指向Summary表中当日数据所在的行(可以手动设置数据源范围,或者在代码中补充动态更新数据源的逻辑,当前代码已完成数据写入,只需关联图表即可)
内容的提问来源于stack exchange,提问作者MKonig




