2010-12-08 3 views
2

일반적인 매크로로 만들 필요가있는 간단한 매크로를 기록 했으므로 모든 행과 마지막 네 개의 셀에 사용할 수 있습니다.Excel 매크로 : 기록 된 하나의 셀을 더 적게 만드십시오?

Selection.End(xlToRight).Select 
Selection.End(xlToRight).Select 
Selection.End(xlToRight).Select 
Selection.End(xlToRight).Select 
Selection.End(xlToLeft).Select 
Range("Q12:T12").Select 
Range("T12").Activate 
Selection.Copy 

최종 하위

가 어떻게

  • 그것이 내가에 커서를 행의 마지막 셀로 이동해야합니까 : 여기 내 recroded 버전은 무엇입니까?
  • 셀의 특정 범위를 다음과 같은 의미의 범위로 변경하십시오.이 셀을 선택하고 왼쪽으로 세 번 더 선택 하시겠습니까?

합니다 ... selection.copy은 내가 거의 마이크

+1

PRO TIP : Windows 용 Excel을 사용하는 경우, 대신 ABSOLUTE 모드 상대 모드에서 매크로를 기록하고 모든 셀 참조가 시작 선택에 관련이되는 기록을 얻을 수 있습니다 절대 대신에. –

+0

위대한 팁, 나는 이것을 다음에 사용하도록 확실히 할 것입니다. 감사합니다 – RocketGoal

답변

5

을 :) 관리

많은 감사 할 수 있다고 생각이 당신이 클릭 모든 행의 마지막 4 개 개의 셀을 복사합니다 현황 :

Sub CopyLastFourCellsOfRow() 
Dim lastCell As Range 
Dim rngToCopy As Range 

Set lastCell = Selection.End(xlToRight) 
Set rngToCopy = Range(lastCell, lastCell.Offset(0, -3)) 

rngToCopy.Copy 

End Sub 

업데이트 - 행에 데이터가 손상된 경우 가장 좋은 방법은 스프레드 시트 (열 4)의 마지막 열에서 시작한 다음 다시 작업하는 것입니다. 이 다음으로 lastCell 문을 대체 달성하기 :

Set lastCell = Cells(Selection.Row, 256).End(xlToLeft) 
+0

많이 감사. – RocketGoal

+0

약간의 문제. 일부 행에 데이터가 손상되어 있으므로 행 끝으로 이동 한 다음 다시 돌아 오는 방법이 있습니까? – RocketGoal

+0

@Mike - 깨진 데이터를 수용하기 위해 업데이트 된 코드를 참조하십시오. –

4

당신은 실제로 당신이에 대한 모든 하나 개의 신속한 이동에 요구하고 각 단계를 수행 할 수 있습니다. 현재 행의 마지막 셀로 이동하려면 ActiveCell.End (xlToRight)를 사용하면됩니다. (사용 '를 ActiveCell은'은 '선택'하나의 셀이 선택되는 경우에 해당하지만, 여러 셀을 선택한 경우에도 작동하기 때문에.)

Range(ActiveCell, ActiveCell.Offset(0, -3)).Select 

는 현재 셀 왼쪽에 3 개를 선택합니다. 별도의 단계에서 "Selection.Copy"를 수행 할 필요가 없습니다. 당신은 단순히 갈 수

Range(ActiveCell, ActiveCell.Offset(0, -3)).Copy 
+0

정확히 내가 바라던 응답 유형 - 교육에 대한 답변 포함. 많은 감사합니다. – RocketGoal