专家,我正在使用两个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
我正在使用这些床单。
我如何解决这个问题。预先感谢。
答案 0 :(得分:0)
为帮助您解决此问题,我需要进行以下假设:
1每次在添加新数据进行复制之前都要清除INPUT SHEET中的数据
2您想复制INPUT SHEET中A到J列的整个范围(您现有的代码似乎表明了这一点)
3我假设您希望将INPUT SHEET中单元格E1中的日期复制到粘贴到DATABASE工作表中的所有新数据旁边的A列中 尝试使用您现有的数据进行编码-如果不起作用,请调整代码以使其尽可能最佳。学习的唯一方法是尝试,再试一次……
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