Страницы: 1
RSS
Как автоматически копировать данные из столбца в столбец?
 
На одном листе в столбец G данные попадают автоматически.Каждый день они меняются.Как сделать ,что бы данные из столбца G автоматически на следующий день копировались в столбец F.На третий день из F автоматически копировались в столбец E и так далее по дням.
 
Непонятно, что такое "автоматически". У вас там формулы стоят.
Тогда уж проще вставлять после обновления данных столбец справа, копировать туда значения следующего столбца, и делать так каждый раз после обновления.
Ну или можно макрорекордером записать вот такой простенький макрос и повесить его на кнопку или сочетание клавиш
Код
Sub Макрос1()
'
' Макрос1 Макрос
'
' 
    Columns("H:H").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("G:G").Copy
    Range("H1").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
F1 творит чудеса
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 Range("G:G").Copy Destination:=Range("G:G").Offset(, Cells.SpecialCells(xlCellTypeLastCell).Column + 1 - 7)
 Application.EnableEvents = True
End Sub
Неизлечимых болезней нет, есть неизлечимые люди.
 
В столбец G данные попадают из Лист2.Каждый день Лист2 я обновляю.Но прежде чем обновлять я в ручную копирую данные и вношу их в столбец F.На  третий день перед обновлением G я в ручную копирую данные из F в E,из G опять в F.Тоесть мне нужны данные за прошедшие 6 дней.Прикладываю новый файл.
В макросах я полный 0.Если без них не обойтись может можно прямо в файле образец.
Заранее спасибо.
 
Вы так объясняете, что поди пойми. Ну как понял... Топаем мыхой кнопу перед внесением новых данных:
Код
Public Sub www()
    Dim r As Range, a, s$
    Set r = Sheets("Лист1").Range("b2:b65536")
    s = r.Offset(, 5).Address
    a = r.Offset(, 5).Formula
    r.Resize(, 6).Value = r.Resize(, 6).Value
    r.Delete xlToLeft
    Sheets("Лист1").Range(s).Formula = a
End Sub
Изменено: KuklP - 10.04.2015 18:49:06
Я сам - дурнее всякого примера! ...
 
Понял по своему..

Скрытый текст
Страницы: 1
Наверх