首先,我向社区表示歉意,因为他们多次带来相同的宏。我只是无能为力。.我解决了一件事,然后另一方面(我什至认为我没有碰过)停止工作。在下面的代码中,一切都可以在Macbook上完美运行,而在我的同事Windows计算机上则没有那么多。具体来说就是:
"ws.Range("A1") = NextMonth"
在“其他”部分找到的似乎无效。具有讽刺意味的是,它确实可以更早地工作,但是工作表名称(月份)使用的语言错误(另一则帖子)。出于某种原因,后一个问题得到解决,然后出现了第一个提到的问题。
我对工作表所做的唯一不可见的事情就是将A1单元格的格式更改为“ [$ -en-GB] MMMM¯¯¯”,这是为了确保“ A1”中的月份”以英语显示。
有什么建议吗?
关于亚历山大,
Sub MonthlyReport()
Dim CurrentMonth As String
Dim CurrentYear As String
Dim NextMonth As String
Dim ws As Worksheet
Dim ExtractMonth As String
Dim ExtractYear As String
Sheets(Sheets.Count).Select
Set ws = ActiveSheet
If ws.Range("A1") = "" Then
CurrentMonth = Application.InputBox("Please enter the month", "Report (monthly)")
CurrentYear = Application.InputBox("Please enter the year", "Report (monthly)")
Sheets("Template").Visible = True
Sheets("Template").Copy After:=Sheets(Sheets.Count)
Sheets("Template").Visible = False
Sheets(Sheets.Count).Select
Set ws = ActiveSheet
ws.Range("A1") = CurrentMonth & " " & CurrentYear
ws.Name = CurrentMonth
ws.Range("C96") = "Average " & CurrentMonth & " " & CurrentYear
Else
CurrentMonth = ws.Range("A1")
NextMonth = DateAdd("m", 1, CurrentMonth)
Sheets("Template").Visible = True
Sheets("Template").Copy After:=Sheets(Sheets.Count)
Sheets("Template").Visible = False
Sheets(Sheets.Count).Select
Set ws = ActiveSheet
ws.Range("A1") = NextMonth
ExtractMonth = Format(NextMonth, "mmmm")
ExtractYear = Format(NextMonth, "yyyy")
ws.Name = ExtractMonth
ws.Range("C96") = "Average " & ExtractMonth & " " & ExtractYear
End If
End Sub