将数据保存在下一个空行的单元格中

时间:2018-05-03 12:44:10

标签: excel vba excel-vba

我有代码通过Outlook发送文件并将数据保存到Excel文件中。

通过Outlook发送文件,效果很好。但是,它将数据保存到Excel文件的同一行。代码应将数据保存到Excel文件的下一个空行中。

Sub AutoEmail()
    On Error GoTo Cancel
    Dim Resp As Integer
    Resp = MsgBox(prompt:=vbCr & "Yes = Review Email" & vbCr & "No = Immediately Send" & vbCr & "Cancel = Cancel" & vbCr, _
    Title:="Review email before sending?", _
    Buttons:=3 + 32)
    'dfsfsd

    Range("S20").Copy
    Range("T20").PasteSpecial xlPasteValues
    'sdaasdf

    Workbooks.Open ("C:\Users\computername\Desktop\New folder (2)\ff.xlsx")
    ThisWorkbook.Activate
    '1
    Workbooks("1435250.xlsx").Worksheets("RFI").Range("T20").Copy _
        Workbooks("ff.xlsx").Worksheets("Sayfa1").Range("P2")
    '1
    Select Case Resp

        'Yes was clicked, user wants to review email first
        Case Is = 6
            Dim myOutlook As Object
            Dim myMailItem As Object

            Set otlApp = CreateObject("Outlook.Application")
            Set otlNewMail = otlApp.CreateItem(olMailItem)
            FName = Application.ActiveWorkbook.FullName

            With otlNewMail
            .To = Cells(33, 10)
            .CC = Cells(1, 1)
            .Subject = Cells(23, 10) & ": " & Cells(21, 10)
            .Body = "this is a text" & vbCr & vbCr & "" & Cells(23, 10) & "."
            .Attachments.Add FName
            .Display

            End With


            Set otlNewMail = Nothing
            Set otlApp = Nothing
            Set otlAttach = Nothing
            Set otlMess = Nothing
            Set otlNSpace = Nothing


        'If no is clicked
        Case Is = 7
            Dim myOutlok As Object
            Dim myMailItm As Object

            Set otlApp = CreateObject("Outlook.Application")
            Set otlNewMail = otlApp.CreateItem(olMailItem)
            FName = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

            With otlNewMail
            .To = ""
            .CC = ""
            .Subject = ""
            .Body = "Good Morning," & vbCr & vbCr & " " & Format(Date, "MM/DD") & "."
            .Attachments.Add FName
            .Send
            '.Display
            'Application.Wait (Now + TimeValue("0:00:01"))
            'Application.SendKeys "%s"

            End With

            'otlApp.Quit

            Set otlNewMail = Nothing
            Set otlApp = Nothing
            Set otlAttach = Nothing
            Set otlMess = Nothing
            Set otlNSpace = Nothing
        'If Cancel is clicked
        Case Is = 2
Cancel:
            MsgBox prompt:="No Email has been sent.", _
            Title:="EMAIL CANCELLED", _
            Buttons:=64

    End Select

End Sub

如何将数据(End(xlUp).Row)保存到Excel文件的下一个空行?

1 个答案:

答案 0 :(得分:1)

变化:

Workbooks("1435250.xlsx").Worksheets("RFI").Range("T20").Copy _
    Workbooks("ff.xlsx").Worksheets("Sayfa1").Range("P2")

对此:

With Workbooks("ff.xlsx").Worksheets("Sayfa1")
    Workbooks("1435250.xlsx").Worksheets("RFI").Range("T20").Copy .Range("P" & .Range("P" & .Rows.count).End(xlUp).Row + 1)
End With