我是新来的,我还没能找到答案。
我有一个年度商店收入工作簿,可以让我跟踪输入的收入/交易数据中的销售额和其他月/年数据。
我有一些VBA代码可以为新的一年创建一个新的工作表。 该代码还将新年数字添加到相关表格中,但链接到这些表格的图表不会随新数据一起更新。
我第一次运行这个代码,它适用于所有表格和图表。现在它偶尔适用于某些但不是全部,并且不总是相同的,并且通常不会更新任何图表。
我的代码是;
Dim NewPageName As String
Sub NewPage()
Dim sName As String
Dim wks As Worksheet
'Unhides Master sheet
Sheets("MASTER").Visible = True
'Copies Master sheet & places copy after Graphs sheet
Sheets("MASTER").Copy after:=Worksheets("Average Daily Till Diff")
'Generates input box to name the new Sheet and checks duplicate names
Set wks = ActiveSheet
Do While sName <> wks.Name
sName = Application.InputBox _
(Prompt:="Enter New Year")
On Error Resume Next
wks.Name = sName
On Error GoTo 0
Loop
Set wks = Nothing
'Moves the data tables from new sheet to next empty column on to relavent data/graph sheets
ActiveSheet.Range("D106:D107").Cut (Sheets("Total Yearly Takings").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Total Yearly Takings").Columns.AutoFit
ActiveSheet.Range("D41:D53").Cut (Sheets("Total Monthly Takings").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Total Monthly Takings").Columns.AutoFit
ActiveSheet.Range("D54:D66").Cut (Sheets("Average Daily Takings").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Average Daily Takings").Columns.AutoFit
ActiveSheet.Range("D93:D105").Cut (Sheets("Average Daily Basket").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Average Daily Basket").Columns.AutoFit
ActiveSheet.Range("D108:D109").Cut (Sheets("Total Yearly Till Diff").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Total Yearly Till Diff").Columns.AutoFit
ActiveSheet.Range("D67:D79").Cut (Sheets("Total Monthly Till Diff").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Total Monthly Till Diff").Columns.AutoFit
ActiveSheet.Range("D80:D92").Cut (Sheets("Average Monthly Till Diff").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Average Monthly Till Diff").Columns.AutoFit
ActiveSheet.Range("D110:D111").Cut (Sheets("Average Daily Till Diff").Range("IV1").End(xlToLeft).Offset(, 1))
Application.CutCopyMode = True
Worksheets("Average Daily Till Diff").Columns.AutoFit
'Hides the Master sheet
Sheets("MASTER").Visible = False
End Sub
任何人都可以提供帮助吗?
答案 0 :(得分:0)
这是通过添加;
排序的Private Sub Workbook_Open()
'Activate a Sheet
Sheets("Average Daily Till Diff").Activate
Sheets("Average Monthly Till Diff").Activate
Sheets("Total Monthly Till Diff").Activate
Sheets("Total Yearly Till Diff").Activate
Sheets("Average Daily Basket").Activate
Sheets("Average Daily Takings").Activate
Sheets("Total Monthly Takings").Activate
Sheets("Total Yearly Takings").Activate
End Sub
这使得工作簿在打开时循环显示包含图表的所有工作表,并允许原始代码添加新工作表并将该工作表数据添加到表和图表中。谢谢大家的帮助。