将工作表复制到多个工作簿 - 公式引用

Posted

技术标签:

【中文标题】将工作表复制到多个工作簿 - 公式引用【英文标题】:Copy worksheet to multiple workbooks - formula references 【发布时间】:2017-08-14 13:13:40 【问题描述】:

我使用了在另一个论坛上找到的以下宏将一张工作表复制到其他多个工作表中:

    Option Explicit
Public Sub CopySheetToAllWorkbooksInFolder()

    Dim sourceSheet As Worksheet
    Dim folder As String, filename As String
    Dim destinationWorkbook As Workbook

    'Worksheet in active workbook to be copied as a new sheet to the destination woorkbook

    Set sourceSheet = ActiveWorkbook.Worksheets("Sheet1")

    'Folder containing the destination workbooks

    folder = "F:\temp\excel\"

    filename = Dir(folder & "*.xls", vbNormal)
    While Len(filename) <> 0
        Debug.Print folder & filename
        Set destinationWorkbook = Workbooks.Open(folder & filename)
        sourceSheet.Copy before:=destinationWorkbook.Sheets(1)
        destinationWorkbook.Close True
        filename = Dir()  ' Get next matching file
    Wend
 End Sub

我要复制到其他目标工作表的源工作表具有公式(与源文件中的其他工作表相关)。 运行宏后,目标工作表中的公式仍然引用源工作表而不是目标工作表。

如何修改宏以调整对新工作簿的引用?

提前非常感谢!

最好, 亚瑟

【问题讨论】:

【参考方案1】:

您可以在复制工作表后删除插入的引用。例如,如果您的源工作簿名为“Source.xlsx”:

Cells.Replace What:="=[Source.xlsx]", Replacement:="=", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
ReplaceFormat:=False

【讨论】:

以上是关于将工作表复制到多个工作簿 - 公式引用的主要内容,如果未能解决你的问题,请参考以下文章

将多个工作簿中的工作表复制到当前工作簿中

使用映射表在工作簿之间复制多个范围

将当前工作簿中的所有工作表复制到新工作簿,但第一张工作表除外

如何用VBA把一个工作簿中的工作表内容复制到另一个汇总工作簿里面的指定的工作表里面去?

VBA 如何批量将单元格复制到另一个工作表中

将工作表从一个工作簿(未打开)复制到打开的工作簿