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

在循环的情况下,替换VBA中函数内的工作表名称,vba,excel,Vba,Excel,我正在创建一些基于工作表格式的工作表,只是简单地用公式复制它的所有内容。只有我给这张纸起了个新名字 我希望,每次我创建一个表,并给它一个名称,格式!所有单元格中的单词必须替换为活动工作表名称 我试着写一些代码,但似乎不起作用 Sub createsheet() LastRow = Sheets("SUMMARY").Range("A" & Rows.Count).End(xlUp).Row Dim ws As Worksheet For i = 9 To La

我正在创建一些基于工作表格式的工作表,只是简单地用公式复制它的所有内容。只有我给这张纸起了个新名字

我希望,每次我创建一个表,并给它一个名称,格式!所有单元格中的单词必须替换为活动工作表名称

我试着写一些代码,但似乎不起作用

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
我们将非常感谢您的帮助

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

我找到了答案。

在replace语句中添加
LookIn:=xlFormulas
是否有帮助?另外,知道什么不起作用也会很有帮助。你不必调用“Worksheets(Worksheets.Count)”。最后激活“两次”。我试过了,但没有成功。当你说该格式!应该更新,你是说这个词包含在公式中的什么地方,还是说纯文本条目?当您使用wsrepl=Worksheets(Worksheets.Count).NameFormat重命名工作表时,forumulae应该自动更新!是工作表的名称。因此,每次我创建一个新的工作表时,它都应该替换为创建的工作表名称,以便公式工作