【问题标题】:Copy sheets with udf to a new workbook将带有 udf 的工作表复制到新工作簿
【发布时间】:2014-10-16 16:54:11
【问题描述】:

我有一个包含 5 张完整 UDF(用户定义函数)的工作簿。
我需要将这 5 张纸复制到新工作簿,但我只需要这些值。
问题是,当我复制这些工作表时,所有带有 UDF 的单元格都被 #value 破坏了,因为我在这个新工作簿上没有我的宏。

我无法复制该模块,因为许多用户会使用此工作簿,而且他们的 Excel 可能不允许我操作 vba project

我尝试仅在工作簿之间复制和粘贴值,但它不起作用。我认为这是因为我的工作表有很多合并的行和列。 Excel 显示错误消息。我将在这里从葡萄牙语翻译成英语,也许 Excel 不使用这个完全有效:

此选项要求合并的单元格大小相同。

我不明白这个错误。我什至尝试手动执行此操作:复制整个工作表(右键单击、移动和复制),然后选择原始工作簿上所有使用的范围 ctrl+c,然后选择新工作簿中的第一个单元格,然后 ctrl+v 和然后只粘贴值。 Excel 会引发错误。我还尝试在按 ctrl+v 之前选择新工作簿上的整个范围。同样的问题。

我不知道该怎么办。我现在正在做的是仅复制和粘贴原始工作簿中的值,然后将整个工作表复制到新工作簿中。问题是这个操作破坏了我原来的工作簿,所以我必须关闭它并重新打开,这是我不想做的。

有人知道如何进行吗?

【问题讨论】:

    标签: excel vba excel-udf


    【解决方案1】:

    试试这些步骤

    1. 复制现有文件中的工作表。
    2. 将所有信息复制并粘贴到新复制的工作表中(在现有文件中)
    3. 将新复制的(和新粘贴的值)表移动到新文件中。

    【讨论】:

    • 天哪,这太简单明了,我简直不敢相信我以前没有想过这个! ¬¬'谢谢!
    • 我们都去过那里!欢迎来到 StackOverflow。如果这样做了,请确保接受答案,以便其他人知道。
    • @hend 你可以打勾,但它会变成绿色!这样做您将获得 2 分。
    【解决方案2】:

    鉴于您要求提供代码,您可以自动化吉他投掷者的solution,如下所示(您可以在其中更改您在书中的工作表名称以复制到下面)

    Sub Redone()
    Dim WB As Workbook
    Dim ws As Worksheet
    
    'runs on ActiveWorkbook
    Set WB = ActiveWorkbook
    WB.Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy
    
    'converts formulae to values on new workbook with the 5 specific sheets
    For Each ws In ActiveWorkbook.Sheets
        ws.UsedRange.Value = ws.UsedRange.Value
    Next
    
    End Sub
    

    【讨论】:

    • 不好。当复制发生时,它会创建新文件,并成为 ActiveWorkbook,它不知道原始工作簿中的 UDF。
    • @robotik 该问题专门要求将副本仅作为值。
    • 复制后,在将它们转换为值之前,他们已经无法计算UDF并给出#NAME?错误
    【解决方案3】:

    试试这个:

    • 复制完整的文件使用另存为
    • 在文件副本中转到每个目标工作表。
    • 右键单击左上角的单元格并选择复制:

    • 然后再次右键单击并选择仅粘贴特殊选择值。
    • 现在删除所有您不想包含的工作表。

    【讨论】:

    • 你的回答几乎和我一样!但是你领先我一分钟并附上了一张照片,所以我删除了我的答案。 :P 我建议,作为最佳实践,@hend 首先“另存为”以避免意外保存他/她的文件并丢失他/她的所有 UDF。
    • 我的文件中有很多 VBA 代码、很多其他工作表和许多条件格式。我的新文件中没有这些。我使用了吉他投掷器的建议,因为在我的新文件中拥有我想要的东西很容易。不过非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多