Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2010, 13:57   #1
Sem_Wolf
Новичок
Джуниор
 
Регистрация: 31.08.2010
Сообщений: 2
По умолчанию копирование строк с функциями

Доброго времени суток! подскажите, как решить такую задачку: есть строка в которой некоторые из ячеек имеют формулы с функциями, например такая:
=ВПР(СсылкаНаЯчейку;ОРГ!R2C1:R16C3; 2;ЛОЖЬ), где СсылкаНаЯчейку - ячейка слева в той же строке

строка копируется макросом :

Public Sub AddNewLine()

Set CurName = Test(ActiveCell().Row)
If Not (CurName Is Nothing) Then
Set CurRange = CurName.RefersToRange()
CurrentRow = CurRange.Rows(1).Row
Set MovedRow = CurRange.Rows(CurRange.Rows.Count)

ActiveCell().EntireRow.Select
Protect_OFF
Application.CutCopyMode = False
Selection.Copy
Selection.Insert Shift:=xlDown
CurName.RefersToR1C1 = "=R" + CStr(CurrentRow) + ":R" + CStr(MovedRow.Row)
NumRows = CurRange.Rows.Count
On Error GoTo NoFormula
Set RangeFormulas = ActiveWorkbook.Names(CurName.Name + "_Подвал").RefersToRange().SpecialC ells(xlCellTypeFormulas)
For Each CurCell In RangeFormulas.Cells
PosStart = InStr(CurCell.FormulaR1C1, "(")
StartFormula = Left(CurCell.FormulaR1C1, PosStart)
CurCell.FormulaR1C1 = StartFormula + "R[" + CStr(-NumRows - 1) + "]C:R[-1]C)"
Next
NoFormula:
Protect_ON
On Error GoTo 0
End If

End Sub
Все хорошо, появляется новая скопированная строка, но в старых строках (те которые копировали) в формуле
=ВПР(СсылкаНаЯчейку;ОРГ!R2C1:R16C3; 2;ЛОЖЬ) параметр СсылкаНаЯчейку меняется на ячейку новой строки. Как это исправить? Нужно данный параметр в новой строке заменять на ячейку новой строки, а старые строки оставлять без изменений. Файлик прилагаю.
Вложения
Тип файла: rar тест.rar (45.7 Кб, 12 просмотров)
Sem_Wolf вне форума Ответить с цитированием
Старый 31.08.2010, 15:38   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Попробуйте СсылкаНаЯчейку сделать относительной (без долларов), тогда ссылка на ячейку в формуле вставляемой строки тоже будет относительной.
nilem вне форума Ответить с цитированием
Старый 31.08.2010, 17:26   #3
Sem_Wolf
Новичок
Джуниор
 
Регистрация: 31.08.2010
Сообщений: 2
По умолчанию

Помогло , Спасибо большое! Отличный форум
Sem_Wolf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование строк kakawkin Microsoft Office Access 2 24.06.2010 01:22
копирование строк в файл raspberry Общие вопросы C/C++ 3 12.03.2010 19:16
Последовательное копирование непустых строк.. Judge52 Microsoft Office Excel 2 13.03.2009 08:23
Копирование перекрывающихся строк strncpy LinuxUser Общие вопросы C/C++ 2 01.12.2007 15:46
Копирование строк Mikola Общие вопросы Delphi 8 21.09.2007 17:21