如何根据单元格的所有可能值保存多个电子表格?
Posted
技术标签:
【中文标题】如何根据单元格的所有可能值保存多个电子表格?【英文标题】:How to save multiple spreadsheets based on all possible values for a cell? 【发布时间】:2020-05-30 17:16:02 【问题描述】:为了具体起见,用户应该在 sheet1 的 A1 单元格中输入一个 1 到 99 的值。然后重新计算 sheet2。
如何预先生成可能出现的所有不同 sheet2 的集合(带有值,不希望公式显示)?
【问题讨论】:
每次更新 sheet1 后,将 sheet 2 复制到新文件并保存。 是的。如果我找不到使手动过程自动化的方法,我将不得不忍受它。 我并没有说它不能自动化 - 可能先记录一个宏,同时完成一次步骤,然后使用该代码作为基础。 【参考方案1】:如果您在 Sheet1 "A1" 中放置(例如)99,则 Sheet2 将在桌面上保存为 Sheet2_99.xlsx(根据需要更改路径),并在 VBA Sheet1 对象中使用以下过程
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = True
If Not Intersect(Range("A1"), Target) Is Nothing Then
Sheets("Sheet2").Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\naresh\Desktop\Sheet2_" & Target.Value & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
With ActiveSheet.UsedRange
.Value = .Value
End With
ActiveWorkbook.Close True
End If
End Sub
【讨论】:
新创建的文件正在链接到原始文件。在每个新文件中,一个单元格(比如 B1)有 ='[Filename.xlsm]Sheet2'!B1。因此,所有文件最终都具有原始文件的最新迭代。 答案已编辑 .. 注意“with .. End with”块语句。以上是关于如何根据单元格的所有可能值保存多个电子表格?的主要内容,如果未能解决你的问题,请参考以下文章
VBA-在命名范围内查找第一个单元格的位置以引用电子表格的标题行