2013-07-28 3 views
0

빈 행을 붙여에서 엑셀 매크로를 방지하기 위해 다른 통합 문서 및 자동 필터의 A 열에서 해당 ID를 검색합니다. 그런 다음 해당 데이터를 복사하여 첫 번째 통합 문서에 붙여 넣어야합니다. 그러나 내 데이터 아래에 여분의 행을 추가하는 경우에도 코드가 작동합니다. 빈 행이 아닌 데이터 만 복사하여 붙여 넣을 수 있도록하려면 어떻게해야합니까? 가능한 코드는 다음과 같습니다.어떻게 여기에 내가 할 필요 무엇 나는 디자인을 엑셀 2007에서 매크로를 시도하고

Sub Medications() 
    ' 
    ' Medications Macro 
    ' 
    ' Keyboard Shortcut: Ctrl+m 
    ' 

    Range("B1").Select 
    Workbooks.Open Filename:= _ 
     "I:\Pharmacy\MTMP\2013\Master Lists\CMR Medication List.xlsx" 
    Range("A1").Select 
    ActiveCell.FormulaR1C1 = "Member ID" 
    Range("A1").Select 
    Selection.AutoFilter 
    ActiveSheet.Range(Selection, ActiveCell.SpecialCells(xlLastCell)).AutoFilter Field:=1, Criteria1:=Workbooks("Standardized Format Spreadsheet.xlsm").Worksheets("Demographics").Range("B1").Value 
    Cells.Select 
    Selection.Copy 
    Windows("Standardized Format Spreadsheet.xlsm").Activate 
    Sheets("Detailed Medication List").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
    Windows("CMR Medication List.xlsx").Activate 
    Application.CutCopyMode = False 
    Application.DisplayAlerts = False 
    ActiveWorkbook.Close 
    Application.DisplayAlerts = True 
    Sheets("Demographics").Select 
End Sub 

답변

0

가능한 경우 항상 항목을 선택하지 않는 것이 좋습니다. 개체에 대해 통합 문서를 설정하고이를 통해 액세스 할 수 있습니다.

복사/붙여 넣기시 추가 셀을 확보하는 이유는 모든 셀을 선택하고 복사하기 때문입니다. 사용 된 범위 만 사용하여 여분의 셀을 집어 들지 않는 것이 좋습니다.

Sub Medications() 
    Dim CMR_Wkbk As Workbook 
    Dim SFS_Wkbk As Workbook 

    Set SFS_Wkbk = Workbooks("Standardized Format Spreadsheet") 
    Set CMR_Wkbk = Workbooks.Open("I:\Pharmacy\MTMP\2013\Master Lists\CMR Medication List.xlsx") 

    Range("A1").Value = "Member ID" 
    ActiveSheet.UsedRange.AutoFilter Field:=1, Criteria1:=SFS_Wkbk.Sheets("Demographics").Range("B1").Value 
    ActiveSheet.UsedRange.Copy Destination:=SFS_Wkbk.Sheets("Detailed Medication List").Range("A1") 

    Application.DisplayAlerts = False 
    CMR_Wkbk.Close 
    Application.DisplayAlerts = True 

    Sheets("Demographics").Select 
End Sub 
0
Cells.Select 
Selection.Copy 

Cells.Select 워크 시트의 전체 콘텐츠를 선택한다. 난 당신 시트의 모습을 분명히 알고 있지만 선택하지 않는 경우에만 CurrentRegion - 당신이 휴대하고 Ctrl-A에서 클릭 할 때 강조 무엇에 해당 :

ActiveCell.CurrentRegion.Copy 
관련 문제