仅对包含数据的行复制和粘贴Excel宏

时间:2017-07-13 12:50:21

标签: excel vba excel-vba

我需要帮助找出一个宏来复制和粘贴包含数据(而不是大的设置范围)的行中的值到另一个工作表。

名为DataEntry的工作表是在A - J列中输入停机时间(可能有2行数据或可能有50行),只将值(而不是公式)粘贴到另一个名为{{1的工作表到列A和下一个可用行。

请帮忙!

1 个答案:

答案 0 :(得分:-1)

您的问题有点令人困惑,但这可能是您想要开始的地方: (如果你能给出一个带有你想要的输出的示例表,那会有帮助)

Sub copyRange()
    Dim dataSht As Worksheet, comboSht As Worksheet
    Set dataSht = Sheets("DataEntry")
    Set comboSht = Sheets("DataCombined")

    Dim rngToCopy As Range

    Set rngToCopy = dataSht.Range(Cells(2, 1), Cells(getLastFilledRow(dataSht), "J"))
    rngToCopy.Copy
    comboSht.Range("A" & (getLastFilledRow(comboSht) + 1)).PasteSpecial xlPasteValues
    rngToCopy = dataSht.Range(Cells(2, 1), Cells(getLastFilledRow(dataSht), "J")).SpecialCells(xlCellTypeConstants)
    rngToCopy.ClearContents
End Sub

'Gets the last row of the worksheet that contains data
Public Function getLastFilledRow(sh As Worksheet) As Integer
    On Error Resume Next
    getLastFilledRow = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            LookAt:=xlPart, _
                            LookIn:=xlValues, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function