Прошу помочь с проблемой:
Пишу код который должен из исходной таблицы "Workprice" создать таблицу "Dealprice".
Данные в создаваемую таблицу вставляются ссылками из первой, но только если в предыдущей итеррации "Dealprice" в эту ячейку не вносились изменения (в этом случае данные вставляются с архивной таблицы "Dealprice_Old". При этом количество строк и столбцов в исходной таблице может меняться, а подстановка осуществляется через поиск в столбце уникальных значений.
Дошёл до момента когда в созданный шаблон "Dealprice" должны вноситься данные, но в переменную iVal не записываются значения из найденой ячейки, хотя если посмотреть Range, то там во всплывающей подсказке указано верное значение. Подскажите, в чём может быть проблема? Из-за этого не могу продвинуться дальше и посмотреть как будет работать придуманный цикл (не факт что будет

Код |
---|
For j = Workprice_Col_1.Column + 1 To Workprice_Col_3.Column - (Workprice_Col_2.Column + 1) ' определяем диапазон столбцов массива For i = 5 To Workprice_LastRow ' определеяем диапазон строк массива Set iVal = Sheets("Dealprice").Range(Cells(i, WP_Pos.Column)) Find_Range_DPO = Sheets("Dealprice_Old").Range(Cells(5, DPO_Pos.Column), Cells(DealpriceOld_LastRow, DPO_Pos.Column)) ' определяем диапазон поиска по столбцу "Работа расценка" в архивном прайсе "Сделка" Set x = Find_Range_DPO.Find(What:=iVal.Value, LookIn:=xlValues, lookAt:=xlWhole) ' находим искомую ячейку на листе Dealprice_Old Find_Range_WP = Sheets("Workprice").Range(Cells(5, WP_Pos.Column), Cells(Workprice_LastRow, WP_Pos.Column)) ' определяем диапазон поиска по столбцу "Работа расценка" в прайсе "Работа" Set y = Find_Range_WP.Find(What:=iVal.Value, LookIn:=xlValues, lookAt:=xlWhole) ' находим искомую ячейку на листе Workprice If x.Offset(, j - DPO_Pos).Value <> "" And Not x.Offset(, j - DPO_Pos).Formula Like "=Workprice!*" Then ' смещаемся в нужную колонку и проверяем что ячейка не пустая и не содержит ссылку на Workprice Sheets("Dealprice").Cells(i, j) = x.Value ' вставляем значение в текущую ячейку на листе Dealprice ElseIf y.Offset(, j - WP_Pos).Value = "" Then ' проверяем является ли искомая ячейка на листе Workprice пустой Sheets("Dealprice").Cells(i, j) = "" ' ставим пустое значение в ячейке Else y.Copy ' копируем найденую ячейку на листе Workprice Sheets("Dealprice").Cells(i, j).Paste Link:=True ' вставляем ссылку на ячейку с листа Workprice End If i = Workprice_LastRow + 1 ' завершаем цикл строк если достигли последней Next i j = (Workprice_Col_3.Column - Workprice_Col_2.Column) + 1 ' завершаем цикл столбцов если достигли последнего Next j |
Прошу не судить строго, я с VBA на "Вы"
