2015-04-17 1 views
-1

У меня есть таблица с столбцами, которая имеет значения (например, даты) в первой строке. Существует много пар строк, у которых есть даты в первой строке со значениями, присвоенными им во второй строке. Все хорошо видно на скриншотах.Откорректируйте строки с тем же значением (например, датой) в одном столбце в Excel

Как настроить эти значения на контрольные даты (из первой строки)?

Я думал о каком-то макросе VBA, но это превосходит мои навыки.

Текущее состояние: http://i.stack.imgur.com/srhuj.png

Желаемая Состояние: http://i.stack.imgur.com/cDqRX.png

+0

Возможно, вы что-то пробовали? Поскольку вы новичок, пожалуйста, прочитайте нашу [Турную страницу] (http://stackoverflow.com/tour) и особенно [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to- просить). – ZygD

+0

Да, добро пожаловать! Пожалуйста, покажите нам, что вы пробовали, и мы поможем вам исправить ошибки, но вы найдете очень мало желающих написать свой код для вас. Если вы не знаете, с чего начать, вы можете попробовать использовать Macro Recorder, чтобы получить основы перемещения ячеек, а затем выяснить, как разместить вокруг него некоторый условный код, чтобы определить, что нужно перемещать и как далеко. – FreeMan

+0

См. [Почему не изображения кода и данных примера] (http://tinyurl.com/kdxb7le) – Jeeped

ответ

0

Для тех, кто заинтересован в ответах не комментирование и обсуждение: конечно, во-первых, вы должны открыть файл и т.д. Самая важная часть - поиск.

' now copy all quotation 
    sourceFile.Activate 
    Range("A9:B5926").Select 
    Selection.Copy 
    ThisWorkbook.Activate 

' paste all quotation in special place 
    Range("A1500").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _ 
      False, Transpose:=True 

' close file 
    sourceFile.Close 

' search for date 
    dateToSearch = CStr(Cells(1500, 1).Value2) 
    Range("B1", Cells(1, 6000)).Select 
    Set cellWithDate = Range("B1", Cells(1, 6000)).Find(What:=dateToSearch, After:=ActiveCell, LookIn:=xlValues, _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
     MatchCase:=False, SearchFormat:=False) 
' .Row .Column to get address parts 
    columnNumOfPasting = cellWithDate.Column 

' paste in right position 
    Range("A1501", Cells(1501, 6000)).Select 
    Selection.Copy 
    Cells(numerLini, columnNumOfPasting).Select 

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _ 
      False, Transpose:=False 
' clear data in special place 
    Range("A1500", Cells(1501, 6000)).Clear 
Смежные вопросы