2015-08-10 6 views
0

Я не очень много программировал на VB, поэтому немного терпения, пожалуйста.Копирование значения ячейки на другой рабочий лист

У меня есть генератор случайных чисел в sheet1 ячейках E5 и каждый раз я нажимаю F9, я хочу, чтобы скопировать новейшее значение в последнюю ячейку в Лист2, колонок А.

Я работал над этим немного , но я не думаю, что у меня есть что-то подходящее.

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Column = 5 Then 
     thisrow = Target.Row 
     lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1 
     Sheets("sheet2").Range("A" & lr).Value = Range("E" & ActiveCell.Row).Value 
    End If 
End Sub 

Я знаю, что lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1 работает, когда я запускаю его в ближайшем окне, она тянет ссылку правой ячейки.

Проблема с мужчиной Я не думаю, что ее правильно называют на моем листе. Поскольку значение никогда не копируется на лист активации. Я также не получаю никакого ответа, когда я пытаюсь провести разрывы строк.

Спасибо, заранее.

ответ

0

Поскольку вы используете два листа, убедитесь, что вы даете справочный лист каждый раз, когда вы используете .Range, .Cells и т.д.

Попробуйте Sheets("sheet2").Range("A" & lr).Value = Sheets("sheet1").Range("E" & ActiveCell.Row).Value (конечно, это предполагает, что вы хотите, чтобы диапазон быть sheet1

Чтобы проверить это - если вы перейдете через свой макрос (нажмите F8, когда он находится в редакторе VB), и вы попадете в строку «вставки», если она не отображается, нажмите CTRL+G, чтобы открыть Прямое окно. В этом окне введите ?Range("E"&activecell.Row).Value, чтобы узнать, что это за значение.