Как удалить формулы и сохранить значение в таблице - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь удалить все формулы в ячейке моей таблицы и сохранить значения. Я пробовал несколько методов, но ни один из них не работал.

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

Это работает, но это способ долго исполнять.

Ответы [ 3 ]

1 голос
/ 26 марта 2019

Вам не нужно беспокоиться о строке заголовка. Вы не можете иметь формулы в строке заголовка. Сконцентрируйтесь на DataBodyRange и используйте прямую передачу значения.

Sub test()
    with ListObjects("Tableau4").databodyRange
        .Value = .Value
    end with
End Sub
0 голосов
/ 26 марта 2019

Попробуйте:

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
0 голосов
/ 26 марта 2019

Вы можете просто использовать:

Sub test()
With ListObjects("Tableau4").DataBodyRange
    .Value2 = .Value2
End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...