2017-02-01 17 views
1

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

Я использую метод replace, но поскольку я ищу конкретную строку на основе буквы столбца и «2», я использовал объект для объединения буквы столбца и «2». Лучший способ объяснить как говорят, я скопировал столбец B и вставить его и сделал дубликат в столбце C.

теперь я хочу, чтобы найти «С2 и С3„“в моих формул и изменить их на„В2“и„В3“.

Я решил, что это будет сделано путем поиска вышеупомянутых строк с использованием метода замены и смещения их на -1. Это оказалось довольно сложным. Любые идеи?

'duplicates column over 1' 

ActiveCell.EntireColumn.Select 
Selection.Copy 
ActiveCell.Offset(0, 1).EntireColumn.Select 
Selection.Insert Shift:=xlToRight 
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone 
Application.CutCopyMode = False 

'Declarations and Instantiations' 
Dim rngo As Range, cell As Range, ranger As Range 
Dim lookfor As String 
Dim UsedRng As Range, LastRow As Long 
Set rngo = Selection.EntireColumn 
Set UsedRng = ActiveSheet.UsedRange 
LastRow = UsedRng(UsedRng.Cells.Count).Row 

rngo.Select 

Do Until ActiveCell.Row = LastRow + 1 

For Each cell In rngo 

Col = SPLIT(ActiveCell(1).Address(1, 0), "$")(0) 'returns just the cell letter' 

lookfor = (Col & "2") 'combines the column letter with the number(I BELIEVE THIS IS THE SOURCE OF THE ISSUE BUT IM NOT SURE IN WHAT WAY' 

'starts to search the new column for "lookfor" which is just the designated string' 
rngo.Replace _What:=lookfor, Replacement:="'offset lookfor by 1 column'",_SearchOrder:=xlByRows, MatchCase:=True 

Next cell 
ActiveCell.Offset(1, 0).Select 
Loop 

MsgBox ColumnName(Selection) 
MsgBox lookfor 

End Sub 

ответ

0

Решено: изменить «rngo.Replace» на «ActiveCell.Replace»