【发布时间】:2018-10-16 15:02:24
【问题描述】:
我正在尝试自动替换工作表。目前我有多个标题为“JAN 18”、“FEB 18”、“MAR 18”等的工作表。我有一个在宏运行之前启动的用户表单。我可以输入新的一年(即:2019),但是代码继续显示我的表格年份“18”。就像进入用户表单的条目不起作用。我正在使用的脚本利用 case 语句来选择具有上一年的所需文件并将其替换为当前年份。
Sub NewFiscalYear()
Dim ws As Worksheet
Dim PrevYear As Integer
Dim FormYear As Integer
FormYear = Format(Date, "yy")
PrevYear = FormYear - 1
'Disabling Display Alerts
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Changing FY Date on Forms
If FormMonth = "AUG" Then
For Each ws In Worksheets
Select Case ws.Name
Case "JAN " & PrevYear, "FEB " & PrevYear, "MAR " & PrevYear, "APR " & PrevYear, _
"MAY " & PrevYear, "JUN " & PrevYear, "JUL " & PrevYear, "AUG " & PrevYear, _
"SEP " & PrevYear, "OCT " & PrevYear, "NOV " & PrevYear, "DEC " & PrevYear
ws.Name = "ws.name " & FormYear
End Select
Next
End If
我正在编写一份大型报告,该报告从多个其他工作簿中收集信息。我的用户表单包括一个输入日期(FormYear)和一个通过组合框(FormMonth)选择的月份。一旦选择了这些,就会运行宏。我的报告工作得很好,但是在新的财政年度遇到了麻烦。
***** 我的目标是让用户在新财政年度的第一个月运行报告,希望他们不会注意到任何变化(除了看起来像一个全新的工作表)。选项卡指示在运行宏之前选择的当前月份以及在用户窗体中选择的会计年度。一旦标签被识别为新年,我将使用空白数据检查并重置所有表格。我希望这能让事情更清楚一点!*****
任何提示或技巧将不胜感激!
【问题讨论】:
-
在您的案例陈述中,您正在寻找工作表名称上的 JAN,但您的工作表名称是 JAN 18,因此您从未真正遇到任何案例陈述。使用 left 函数提取 3 个字符。
-
什么是
FormMonth? -
大概,FormMonth 是 Userform 上的一个字段?
-
@Comintern 感谢您的帮助!我现在正在调整事情。 FormMonth 是一个组合框选项,在启动工作簿时出现在用户窗体上。我有这本工作簿来自各种来源,FormMonth(JAN、FEB、MAR 等)主要用作字符串来引用文本以打开和引用其他工作簿。我每月运行一次报告,这只是引用了我将处理的月份。