>

시트에서 빈 행을 삭제하려고합니다. 원래 해당 행에 데이터가 있고 매크로는 해당 데이터를 자르고 Sheet2로 이동하여 빈 행을 남깁니다. 해당 행을 제거하거나 아래에 행 데이터가 있으면 위로 이동하고 싶습니다.

Private Sub cmdMove_Click()
Dim myLog As Worksheet
    Dim myLogSheet As Range
    Dim i As Long
    i = 1
    i = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row + 1
    Set myLog = Sheets("Sheet1")
    Set myLogSheet = myLog.Range("B:B").Find(txtID.Value, , , xlWhole)
    If Not myLogSheet Is Nothing Then
        myLogSheet.Offset(0, 2) = Format(Now, "hh:mm:ss")
        Application.Wait Now + TimeValue("00:00:02")    'Delay to see the punch out time...
        DoEvents
        myLogSheet.EntireRow.Cut Sheet2.Cells(i, "A")
        ' After cutting the entire row, I want the below data to move up to avoid any empty
        'row.. thank you.
        On Error Resume Next
    Else
        txtName.Value = "NO RECORD"
    End If
End Sub

  • 답변 # 1

    if 부분을 다음 문장으로 바꾸면 작동합니다.

    If Not myLogSheet Is Nothing Then
        Dim foundRow as long
        myLogSheet.Offset(0, 2) = Format(Now, "hh:mm:ss")
        foundRow = myLogSheet.row
        Application.Wait Now + TimeValue("00:00:02")    'Delay to see the punch out time...
        DoEvents
        myLogSheet.EntireRow.Cut Sheet2.Cells(i, "A")
        ' After cutting the entire row, I want the below data to move up to avoid any empty
        'row.. thank you.
        myLog.Rows(foundRow).select
        Selection.Delete Shift:=xlUp
        On Error Resume Next
    Else
        txtName.Value = "NO RECORD"
    End If
    
    

  • 답변 # 2

    마지막 줄에이 코드를 추가하십시오

    열 (1) .SpecialCells (xlCellTypeBlanks) .entirerow.Delete

관련 자료

  • 이전 linux - Ubuntu 응용 프로그램 시작 명령에서 실행 된 프로그램에서 이미지를 저장하는 방법
  • 다음 ERD의 관계가 있습니까?