скопировать данные с одного листа на другой в следующей пустой строке - PullRequest
0 голосов
/ 23 декабря 2018

Hy Эксперты, я использую два листа Excel.Один вход, а второй база данных.Во входном листе я хочу скопировать все данные после нажатия кнопки на листе базы данных.Макрос, который я использую, работает хорошо.но вместо вставки данных в следующую пустую строку он начинает записывать существующие данные.это неверно.Я использую этот макрос.

Sub copydate()
'
' copydate Macro
'

'
    Range("E1:J1").Select
    Selection.Copy
    Sheets("DATABASE").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.NumberFormat = "m/d/yyyy"
    Range("A2:A75").Select
    Selection.FillDown
    Sheets("INPUT SHEET").Select
    Range("A3:J77").Select
    Selection.Copy
    Sheets("DATABASE").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Columns.AutoFit
    Columns("B:B").Select
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub

Я использую эти листы.Input Sheet

Database Screen.

Как я могу решить эту проблему.Заранее спасибо.

1 Ответ

0 голосов
/ 24 декабря 2018

Чтобы помочь вам в этом, мне нужно сделать следующие предположения:

1 Вы очищаете данные в ВХОДНОМ ЛИСТЕ каждый раз перед добавлением новых данных для копирования

2Вы хотите скопировать весь диапазон из столбцов от A до J из ЛИСТА ВВОДА (ваш существующий код, кажется, указывает на это)

3 Я предполагаю, что вы хотите, чтобы дата из ячейки E1 в ЛИСТЕ ВВОДА была скопированав столбец A рядом со всеми новыми данными, вставленными в таблицу DATABASE. Попробуйте код с существующими данными - если он не работает, то отрегулируйте код так, как вам лучше.Единственный способ научиться - это попробовать, попробовать еще раз ...

Option Explicit

Sub CopyToDatabase()
Dim LastInput As Long, PasteRow As Long, LastRow As Long

'Find the last row of data to copy
LastInput = Sheets("INPUT SHEET").Range("A3").End(xlDown).Row

'Find the row to paste the new data to
If Sheets("DATABASE").Range("A2") <> "" Then
    PasteRow = Sheets("DATABASE").Range("A2").End(xlDown).Row + 1
    Else
    PasteRow = 2
End If

'Copy the data
Sheets("INPUT SHEET").Range("A3:J" & LastInput).Copy _
Sheets("DATABASE").Range("B" & PasteRow)

'Find the last row of newly copied data
LastRow = Sheets("DATABASE").Range("B2").End(xlDown).Row

'Put the date next to the newly copied data
Sheets("DATABASE").Range("A" & PasteRow & ":A" & LastRow).Value _
= Sheets("INPUT SHEET").Range("E1").Value

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...