Страницы: 1
RSS
Вставка формулы в другую таблицу без остаточных связей с пред таблицы
 
Всем доброго вечера.
Пытаюсь понять как именно сделать но в голову приходит только ДВССЫЛ и куда нибудь в ячейку записать часть формулы. Но это не вариант.
Вот собственно сама формула для примера
Перед копированием в первой таблице
Код
СУММЕСЛИ([13];L48;[35]) 
а вот после копирования в другую таблицу, как видите остается связь с пред. таблицей.
Код
СУММЕСЛИ(внедрение[13];L48;внедрение[35])

копирование формул пользуюсь с макросом
Код
  Sheets("внедрение").Range("A8:ER" & shislostrok + 7).Copy
  Sheets("Данные").Range("A" & shislostrokk + 6).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  Sheets("внедрение").Application.CutCopyMode = False
Как можно убрать связь? Если только подменить используя FormulaR1C1, но опять же иногда приходиться вручную вставлять значение вместо формулы.

Буду очень благодарен если есть решение.
 
albert123, Не видя файла примера и не понимая масштабов, как вариант скопировать без знака равно.
 
Посмотрите в приёмах Копирование формул без сдвига ссылок  
 
Цитата
albert123 написал:
как видите
никак не видим :) Файла-то Вашего у нас нет.
Откуда взялось имя таблицы? Формула внутри умной таблицы? А вставить пытаетесь потом в простую? Тогда надо заменять имя таблицы и имя столбца на их диапазоны. Вроде того:
Код
    Dim shislostrok&, lc&, rc As Range, rt As Range, x, xt As ListObject
    
    shislostrok = 11
    Set rt = Sheets("внедрение").Range("A1:C" & shislostrok)
    For Each x In Sheets("внедрение").ListObjects
        If Not Intersect(x.Range, rt) Is Nothing Then
            Set xt = x
            Exit For
        End If
    Next
    If xt Is Nothing Then
        Exit Sub
    End If
    rt.Copy
    With Sheets("Данные").Range("A" & shislostrok + 6).Resize(xt.ListRows.Count, xt.ListColumns.Count)
        .PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        For lc = 1 To xt.ListColumns.Count
            .Replace xt.Name & "[" & xt.ListColumns(lc).Name & "]", xt.ListColumns(lc).DataBodyRange.Address, xlPart
        Next
    End With
    Sheets("внедрение").Application.CutCopyMode = False
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх