我具有其中式當前設置的列(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