2016-02-22 3 views
0

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

То, что я (упрощенный): А (Mac), Excel-лист «Выход» с:

Name Time Date 
Mike 08:00 01.01.2016 

Вторая строка приносит данные, основанные на некотором входе на еще одном листе.

Что мне нужно: Всякий раз, когда я буду менять вторую строку «Выход» (т. Е. Меняя вход), я могу нажать кнопку, чтобы добавить всю вторую строку на новый рабочий лист «Журнал» (который будет содержать заголовок также). По существу, регистрируя данные при нажатии кнопки. Данные могут быть добавлены только один раз, удалены несколько записей одних и тех же данных. После регистрации данных в «Журнале» вторую строку «Выход» не нужно очищать, однако я не могу снова добавить те же данные.

Любые мысли?

* EDIT

Я изменил код здесь: http://goo.gl/48jjDo.

Sub Submit() 
Application.ScreenUpdating = False 

Dim refTable As Variant, trans As Variant 
refTable = Array("A = A2", "B = B2", "C=C2") 
Dim Row As Long 
Row = Worksheets("Log").UsedRange.Rows.Count + 1 
For Each trans In refTable 
Dim Dest As String, Field As String 
Dest = Trim(Left(trans, InStr(1, trans, "=") - 1)) & Row 
Field = Trim(Right(trans, Len(trans) - InStr(1, trans, "="))) 
Worksheets("Log").Range(Dest).value = Worksheets("Output").Range(Field).value 
Next 

Application.ScreenUpdating = True 

End Sub 

* Edit2

Хорошо это у меня дальше:

Sub CopyRangeFromSheet1toSheet2() 
Dim lastRow As Long 
lastRow = Sheets("Sheet2").Range("A100000").End(xlUp).Row + 1 ' then next free row in sheet2 
Sheets("Sheet1").Range("A2:C2").Copy Destination:=Sheets("Sheet2").Range("A" & lastRow) 
End Sub 

Однако, как я могу проверить сейчас для нескольких данных? И мне нужно будет вставлять только значения.

+2

Пожалуйста, после того, что код у вас есть. Кроме того, вы говорите, что огляделись, но не можете найти решение для работы - что вы нашли? Вы в основном хотите скопировать строку на второй лист, переписывая любую информацию на этом втором листе? – BruceWayne

+0

В основном я ищу способ скопировать ряд на второй лист, но не переписывать его, а добавить его ниже его в первую свободную строку на втором листе. –

+0

Просто используйте 'Activesheet.UsedRange.Rows.Count', чтобы найти последнюю строку на втором листе и поместите свои данные в следующую строку. –

ответ

0

До сих пор это работает:

Sub CopyFormulas() 
Dim sht1 As Worksheet, sht2 As Worksheet 

Set sht1 = Sheets("Output") 
Set sht2 = Sheets("Log") 

sht1.Range("A2:C2").Copy 
sht2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 


Application.CutCopyMode = False 

response = MsgBox("data was added") 

End Sub 

Не это только проверка на наличие нескольких записей, отсутствует

Смежные вопросы