Rit*_*hra 1 excel vba excel-vba
我的代码工作得很完美,除了它创建了一个额外的工作表(序列中的下一个...即"Sheet2".."Sheet3"...每次我运行它.任何人都可以帮助弄清楚为什么会发生这种情况?... .应该只有两张表格,如我在下面的代码中所示:
Sub CopySheet()
Dim NewSheet As String
Dim PrevSheet As String
Dim CashWS As Worksheet
Dim MonthVal As String
NewSheet = InputBox("Which month is this Commissions statement for?")
PrevSheet = InputBox("What was the previous month?")
Worksheets(PrevSheet).Copy After:=Worksheets("Summary")
ActiveSheet.Name = NewSheet
Range("D2").Select
ActiveCell.FormulaR1C1 = "=EOMONTH(DATE(2017,MONTH(DATEVALUE(MID(CELL(""filename"", RC[-5]), FIND(""]"", CELL(""filename"", RC[-5])) + 1, 255)&""1"")+1),1),0)"
Selection.NumberFormat = "m/d/yyyy"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=MONTH(R[-1]C)"
Range("D3").Select
Selection.NumberFormat = "General"
MonthVal = ActiveCell.Value
Set CashWS = Sheets.Add
Sheets.Add.Name = "2017_0" & MonthVal & " Cash"
End Sub
Run Code Online (Sandbox Code Playgroud)
它发生在最后一步:
Set CashWS = Sheets.Add
Sheets.Add.Name = "2017_0" & MonthVal & " Cash"
Run Code Online (Sandbox Code Playgroud)
改为:
Set CashWS = Sheets.Add
CashWS.Name = "2017_0" & MonthVal & " Cash"
Run Code Online (Sandbox Code Playgroud)
第二步Sheet.Add.Name
添加工作表并同时重命名.执行此操作时Set CashWS = Sheets.Add
,Excel会添加工作表.那么,只需使用您的WS变量并更新名称.
编辑:没有真正的原因,我会补充说,如果你偏爱使用Sheets.Add.Name...
你可以做到:
Sheets.Add.Name = "2017_0" & MonthVal & " Cash"
Set CashWS = ActiveSheet
Run Code Online (Sandbox Code Playgroud)
然后继续使用CashWS
变量.
归档时间: |
|
查看次数: |
114 次 |
最近记录: |