我正在尝试删除表格单元格中的所有公式并保留其值。我尝试了几种方法,但没有一个起作用。
Sub test()
ActiveSheet.ListObjects("Tableau4").Range.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
此代码始终删除表的标题。 我也尝试过此代码:
Sub test()
For Each cell In ListObjects("Tableau4").Range
cell.Value = cell.Value
Next cell
End Sub
它可以工作,但是很长一段时间才能执行。
答案 0 :(得分:1)
您不必担心标题行。标题行中不允许包含公式。专注于DataBodyRange并使用直接值转移。
Sub test()
with ListObjects("Tableau4").databodyRange
.Value = .Value
end with
End Sub
答案 1 :(得分:0)
您应该可以使用:
Sub test()
With ListObjects("Tableau4").DataBodyRange
.Value2 = .Value2
End With
End Sub
答案 2 :(得分:-1)
尝试:
Sub MAKE_VALUES()
Range(ActiveSheet.ListObjects("Tableau4").Range.Address) = Range(ActiveSheet.ListObjects("Tableau4").Range.Address).Value
End Sub
请注意,这会将所有表转换为值,包括标题,并删除表的格式。
如果要保留表格式并仅将正文(表头除外)转换为值,请使用:
Sub MAKE_BODY_VALUES()
Range(ActiveSheet.ListObjects("Tableau4").DataBodyRange.Address) = Range(ActiveSheet.ListObjects("Tableau4").DataBodyRange.Address).Value
End Sub