基于InputBox为新工作簿的工作表名称添加值



这就是我迄今为止得到的:

Option Explicit
Sub CreateNewBookWithDaysInMonthSheets()
Dim WS As Worksheet, WB As Workbook
Dim MonthX As Date, Control As Variant, DaysInMonth As Byte, i As Byte
    'create input box
Control = InputBox("Create new FTE workbook for period:", "New FTE", "mm/yyyy")
If IsDate(Control) Then
    'Create sheets based on days in selected month
    MonthX = CDate(Control)
    DaysInMonth = Day(DateSerial(Year(MonthX), Month(MonthX) + 1, 0))
    Application.SheetsInNewWorkbook = DaysInMonth
    Set WB = Workbooks.Add
    i = 1
    For Each WS In WB.Sheets
        WS.Name = i
        i = i + 1
        WB.SaveAs Filename:="FTE_" & Control & ".xlsm"
            'set default workbook count back to 3
            Application.SheetsInNewWorkbook = 3
    Next
Else
MsgBox "No period set"

End If
Set WS = Sheets.Add(Before:=Sheets("1"))
WS.Name = "Total for "

End Sub

我现在的问题是,如何将输入框中键入的"mm/yyyy"添加到工作表名称"Total for"中?因此,它将是例如"2015年9月总计"。

尝试:

WS.Name = "Total for " & replace(Control,"/",".")

这将把输入到InputBox中的值连接到"Total for"字符串的末尾。

注意:同一名称的工作表不能超过1个,所以你可能想像这个一样把你的i值加到末尾

WS.Name = "Total for " & replace(Control,"/",".") & i

最新更新