我具有其中式当前设置的列(AF)作为一列中的所有单元:替换表名称使用VBA
=IFERROR(INDEX('2017_03 Cash'!D:D,MATCH(G:G,'2017_03 Cash'!A:A,0)),0)
我想基于所述'2017_03 Cash'
部分改变特定选项卡的名称。例如,这是用于三月(03),然后在下一个月我创建一个新工作表,名为"2017_04 Cash"
...等。
如果你看一下我的代码below..you会看到
Set CashWS = Sheets.Add
CashWS.Name = "2017_0" & MonthVal & " Cash"
我想在脚本的东西,将在列AF公式的'2017_03 Cash'
部分更改为片是CashWS.Name = "2017_0" & MonthVal & " Cash"
所以所有的3应该基本上被4取代。然后将公式一直向下拖动到列AF的最后一行。
Sub AddSheets()
Dim PrevSheet As String
Dim CashWS As Worksheet
Dim MonthVal As String
Dim lr As Long
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
With Worksheets(NewSheet)
lr = .Cells(.Rows.Count, "AG").End(xlUp).Row
.Range(.Cells(5, "AE"), .Cells(lr, "AE")) = .Range(.Cells(5, "AG"), .Cells(lr, "AG")).Value
End With
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
CashWS.Name = "2017_0" & MonthVal & " Cash"
End Sub
你确定'MATCH(G:G,'2017_03 Cash'!A:A,0)'是正确的吗? – Jeeped
@Jeeped是的,它是= IFERROR(INDEX('2017_03 Cash'!D:D,MATCH(G:G,'2017_03 Cash'!A:A,0)),0)这个公式已经在我的工作表中了它被提供给我,并将数据拖入该列。 –
@RituMishra我的评论不仅仅是关于这个问题。当你在那里阅读时,接受一个答案提示双方。它还可以帮助其他人找到解决OP问题的解决方案。这也将增加观众,因为他们看到问题有答案。 (在发布一段时间之后,您确信自己得到了最好的答案)。除非你想开始赏金。感谢您尽可能保持SO的质量。 – Masoud