/ / Excel: Kliknij przycisk, aby skopiować wiersz do innego arkusza - excel, vba, excel-vba

Excel: Kliknij przycisk, aby skopiować wiersz do innego arkusza - excel, vba, excel-vba

Wiem wiem. Jest mnóstwo sugestii, jak rozwiązać ten konkretny problem, ale jakoś wszystkie one ze mną zawodzą.

Co mam (uproszczone): A (Mac) Excel-Sheet „Wyjście” z:

Name   Time   Date
Mike   08:00  01.01.2016

Drugi wiersz daje dane w oparciu o pewne dane wejściowe na jeszcze innym arkuszu.

Czego potrzebuję: Za każdym razem, gdy zmienię drugi wiersz „Wyjścia” (tj. Zmieniając wejście), mogę kliknąć przycisk, aby dodać cały drugi wiersz do nowego arkusza „Dziennik” (który będzie również zawierał nagłówek). Zasadniczo rejestrowanie danych po kliknięciu przycisku. Dane można dodać tylko raz, wiele wpisów tych samych danych jest usuwanych. Po zalogowaniu danych w „Log” drugi wiersz „Output” nie musi być czyszczony, jednak nie powinienem być w stanie ponownie dodać tych samych danych.

jakieś pomysły?

*EDYTOWAĆ

Zmodyfikowałem kod tutaj: 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

Ok, to jeszcze bardziej mnie podniosło:

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

Jak jednak sprawdzić teraz wiele danych? I będę musiał wkleić tylko wartości.

Odpowiedzi:

0 dla odpowiedzi № 1

Do tej pory to działa:

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

Brakuje tylko sprawdzenia wielu wpisów