Vba 数据更新后,保留单元格值而不是公式,并删除数据表
我有一个xlsx电子表格,里面有一堆包含数据或公式的表格。假设sheet1包含数据,sheet2包含引用sheet1中数据的公式。当sheet1使用来自SAS程序的新数据更新时,我尝试执行以下操作: 将表2转换为仅值,即删除后面的公式 删除第1页 保存文件 我需要通过电子表格自动完成这项工作,并在有更新时自动运行宏/程序 到目前为止,我得到的是粘贴值而不是公式:Vba 数据更新后,保留单元格值而不是公式,并删除数据表,vba,excel,Vba,Excel,我有一个xlsx电子表格,里面有一堆包含数据或公式的表格。假设sheet1包含数据,sheet2包含引用sheet1中数据的公式。当sheet1使用来自SAS程序的新数据更新时,我尝试执行以下操作: 将表2转换为仅值,即删除后面的公式 删除第1页 保存文件 我需要通过电子表格自动完成这项工作,并在有更新时自动运行宏/程序 到目前为止,我得到的是粘贴值而不是公式: Sub Sample() Dim ws As Worksheet Set ws = ThisWorkbook.She
Sub Sample()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("tab2")
ws.UsedRange.Value = ws.UsedRange.Value
End Sub
我真的不熟悉VBA。试试这个:
Sub Sample()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("tab2")
ws.UsedRange.Value = ws.UsedRange.Value
Application.DisplayAlerts = False
Sheets("sheet1").Delete
Application.DisplayAlerts = True
ActiveWorkbook.Save
End Sub
只有在表2中才有这些值 您想删除工作表1应该有一个弹出窗口来检查您是否真的想删除工作表。。。我们将在您之前关闭,然后在以下时间后重新打开:
Application.DisplayAlerts = False
Sheets("Sheet1").Delete
Application.DisplayAlerts = True
然后to.SaveAs提示输入要另存为的文件名
ThisWorkbook.SaveAs Filename:=fName
为什么不抓起两张纸的想法,根据我在问题中得到的答案进行推断呢 尝试使用宏
Range("A1:P10").Select
With Selection
.Value = .Value
End With
这会将选定范围内的每个公式转换为其值。只是不要尝试使用单元格。选择。当我尝试它时,我得到了一个与内存相关的错误。如果您的电子表格大小不同,则首先计算底部单元格
Sub Convert()
' Table Bottom
Dim TB As Long
' Set Table Bottom Variable
TB = Range("A65000").End(xlUp).Row 'finds bottom row
' Change Formulas in Range to Values
Range("A1:P" & TB).Select
With Selection
.Value = .Value
End With
End Sub
有时,我不得不根据电子表格更改列以查找底部行,但这是一般的想法
我认为,如果您将其放在提取更新的代码末尾,或者在更新完成后单独运行它,那么这将完成您最终要做的事情。你的目标似乎不是要有两个不同的电子表格。只有一个电子表格是唯一的值。如果在更新时总是删除sheet1,这会给您带来一些麻烦。@Vinnie实际上我制作了一份电子表格的副本,我用它作为模板,它就是更新的副本。我怎么能在整个电子表格上自动执行此操作,例如,使用tab2和sheet1的参数?您希望在这些工作表上自动执行哪些操作?例如,如果我有20张工作表要删除,您必须确定要删除哪些工作表。