【发布时间】:2012-06-27 12:04:12
【问题描述】:
我想将保存/打开功能添加到我编写的一个小 Excel 程序中。要使用该程序,用户必须在几张纸上填写数据并调整设置。我想把它保存到一个配置文件中,以便以后能够加载它。
我应该如何构建这个 SAVE/OPEN 功能?
我的想法是通过简单的“链接”(例如=Sheet1!A1)将输入的数据和配置组合在一张纸上(我们将其命名为Entries)。此工作表将被导出。
我以这种方式将条目保存到新的 .xls 工作簿中:
ActiveWorkbook.Sheets("Entries").Columns("A:B").copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'Paste only values
但是在加载数据时遇到了挑战......
网上有几个例子(参见here 和there)说明了如何做,但总是遇到同样的问题。也就是说:如果我只是将数据从保存的工作簿(仅限值)复制到Entries 工作表,我所有的“链接”都将被删除。有没有办法同步数据?
或者是在 VBA 中手动输入所有单元格值并复制数百个范围的唯一解决方案,从导出的工作簿直接复制到用户使用的单元格?
【问题讨论】:
-
如果要复制公式,Excel 允许这样做:
ActiveSheet.YourRange.Formula = SourceWorkbook.SourceSheet.SourceRange.Formula -
当我将条目表(所有用户条目都分组)导出到新文件时,我只想保存值,因为这将是一个独立的文件。但是当我打开我导出的文件时,我的目的是替换分布在各个工作表中的输入字段中的值。替换值的一种解决方案是将所有目标范围输入 VBA。如果可行的话,我更希望的另一个解决方案是以某种方式在导出的文件和条目表之间同步数据。
-
我想我还没有完全理解你的问题,如果我把你引向错误的方向,很抱歉。您的意思是有一个公式指向您的
Entry工作簿的工作簿吗?通过这种方式,可以在用户选择打开文件时更新值,但您也可以强制手动计算,这意味着用户可以选择使用<F9>进行同步。 -
嗨,Gaffi,感谢您的回复。我的意思是:一旦我在新工作簿中导出了用户设置(仅限值),并且一旦程序重新启动并从用户条目中清空,我如何将导出的设置复制回程序?如果我只是将所有内容复制到条目表,链接将会丢失。 (我也更新了我的问题,试图澄清一下。看看它是否有帮助)
标签: vba excel synchronization save