首页 文章

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

提问于
浏览
0

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

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

请帮忙!

1 回答

  • -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
    

相关问题