在循环的情况下,替换VBA中函数内的工作表名称

时间:2015-03-27 22:17:13

标签: excel vba excel-vba

我正在创建几个基于某些工作表格式的工作表,只需简单地用公式复制所有内容即可。只有我给表格一个新名称。

我希望每次创建工作表并为其命名时,所有单元格中的 format!字必须替换为活动工作表名称。

我试着编写一些代码,但似乎无效。

Sub createsheet()

    LastRow = Sheets("SUMMARY").Range("A" & Rows.Count).End(xlUp).Row
    Dim ws As Worksheet

    For i = 9 To LastRow
        Set ws = ThisWorkbook.Sheets.Add(after:= _
            ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        ws.Name = Left(Sheets("SUMMARY").Cells(i, 1), 31)
        wsrepl = Worksheets(Worksheets.Count).Name

        Sheets("format").Select
        Cells.Select
        Application.CutCopyMode = False
        Selection.Copy
        Worksheets(Worksheets.Count).Activate
        ActiveSheet.Paste
        ActiveSheet.Cells(2, 2) = Sheets("SUMMARY").Cells(i, 1)
        ActiveSheet.Cells(5, 2) = Sheets("SUMMARY").Cells(i, 1)

        Worksheets(Worksheets.Count).Activate
        Cells.Replace What:="format!", Replacement:= _
            wsrepl, LookAt:=xlPart, SearchOrder:=xlByRows _
            , MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Next i
End Sub

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

         Cells.Replace What:="format!", Replacement:= _
       "'" & wsrepl & "'" & "!", LookAt:=xlPart, SearchOrder:=xlByRows _
        , MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

我找到了答案。