在删除从属表时,保留Excel工作表中的计算结果

时间:2015-10-09 19:20:38

标签: excel vba

我目前有两个Excel工作簿:

进行计算的人(EXC),
另一个拥有所有数据值(EXD)。

EXC收集EXD中的所有值,并使用公式生成新值。当我保存EXC文件并将其发送给朋友时,出于安全原因,他无法看到这些值,因为他没有EXD

有没有办法在Excel中完成并保存所有计算后保存文件?

我不想将其保存为PDF文件或任何内容,因为它们需要由朋友编辑。

这需要VBA吗?

我目前正在使用Excel 2010.有关所有计算的更多信息,请参阅我的另一个问题:Multicolumn lookup。它们不是非常复杂的计算,但是必要的。

SUGGESTION

如果我无法在完成所有计算后保存它:

是否可以向他发送EXD工作簿并将其设为私有,除了EXC工作簿之外无法查看?

将工作簿组合在一起并将其中一个电子表格隐藏起来,但可以查看EXC电子表格吗?

3 个答案:

答案 0 :(得分:1)

这个问题已经得到了很好的回答,但如果能帮到任何人,我会加上这个提示。

如果要将单个单元格从公式转换为静态值:选择单元格并按F2键更改公式,但随后按F9键,它将更改为公式的静态解法。只需选中另一个单元格就可以了。

答案 1 :(得分:1)

只需点击一下即可完成所有操作?这是一个宏,可以根据路径和模式名称修复所有文件的值。只需单击一下,您就可以修复所有文件,无需自己打开它们并使用功能区播放;)

Sub FixAllValues()
    On Error Resume Next
    Dim wb As Workbook, ws As Worksheet
    Dim pattern As String: pattern = "C:\SO\*EXD*.xlsx" ' <~~ put your pattern here
    Dim f As String: f = Dir(pattern)
    Application.DisplayAlerts = False: Application.EnableEvents = False
    Do Until f = ""
        Set wb = Application.Workbooks.Open(f)
        For Each ws In wb.Worksheets
            ws.UsedRange.Value = ws.UsedRange.Value
        Next
        wb.Close True
        f = Dir
    Loop
    Application.DisplayAlerts = True: Application.EnableEvents = True
End Sub

答案 2 :(得分:0)

进入EXD工作簿。另存为新文件。转到“数据”功能区,然后在“连接”部分下,单击“编辑链接”。选择所有链接,然后单击&#34;中断连接&#34;。这将获取引用另一个文件的所有单元格,并将这些单元格仅转换为值。