Excel 자동 채우기 단축키 사용자 정의

4779 단어 Excel
Technorati Tags:
Excel ,
Marco ,
Auto Fill ,
Shortcut Key ,
Excel 매크로 ,
자동 충전 ,
단축키
 
Microsoft Excel은 다양한 단축키를 제공하여 전자 표를 조작하는 데 매우 편리하다. 특히 매우 크고 긴 시계를 조작할 때.
Excel의 자동 채우기 기능은 셀 내용, 공식, 채우기 시퀀스를 복사하는 작업을 간단하게 합니다.그러나 Excel은 채우기 손잡이를 드래그하여 채우기만 제공할 뿐 자동 채우기에 대한 단축키는 제공하지 않습니다.조작이 빈번할 때 오른손은 키보드와 마우스 사이를 왔다 갔다 해야 하기 때문에 피로하기 쉽다.시스템은 제공하지 않습니다. 프로그래머로서 VBA 매크로를 작성하여 자동 채우기를 실행하고 이 매크로에 단축키를 지정하여 단축키를 통해 자동 채우기 작업을 수행할 수 있습니다.
 
1: Excel 워크북 새로 만들기;VBA 편집기에 모듈을 추가하여 매크로 코드를 작성합니다.
소스 코드:
' Author: Ken Yang

' http://www.cnblogs.com/kenyang

'  , 。



Sub AutoFill()



    Dim SourceArea As Range, TargetArea As Range

    

    Set SourceArea = Selection.Areas.Item(1)

    

    Dim SourceBottomLeftCell As Range, SourceBottomRightCell As Range

    

    Set SourceBottomLeftCell = SourceArea.Cells(SourceArea.Rows.Count, 1)

    Set SourceBottomRightCell = SourceArea.Cells(SourceArea.Rows.Count, SourceArea.Columns.Count)

    

    Dim TargetLastRow As Long, TargetLastCell As Range

    

    If SourceBottomLeftCell.Offset(1, 0).Value = vbEmpty Then

    

        If SourceBottomLeftCell.End(xlDown).Value = vbEmpty Then

            If SourceBottomLeftCell.Column = 1 Then

                If SourceBottomRightCell.Offset(1, 1).Value <> vbEmpty Then

                    Set TargetLastCell = SourceBottomRightCell.Offset(0, 1).End(xlDown).Offset(0, -1)

                End If

            Else

                If SourceBottomLeftCell.Offset(1, -1).Value <> vbEmpty Then

                    Set TargetLastCell = SourceBottomLeftCell.Offset(0, -1).End(xlDown).Offset(0, SourceArea.Columns.Count)

                End If

            

            End If

        Else

            Set TargetLastCell = ActiveSheet.Cells(SourceBottomLeftCell.End(xlDown).Offset(-1, 0).Row, SourceBottomRightCell.Column)

        End If

    

    Else 'If SourceBottomLeftCell.Offset(1, 0).Value <> vbEmpty Then

    

        Dim LastCell As Range

        Set LastCell = SourceBottomLeftCell.End(xlDown)

    

        Dim i As Long, LastRow As Long

        LastRow = SourceBottomLeftCell.End(xlDown).Row

        

        For i = 2 To SourceArea.Columns.Count

            If SourceArea.Cells(SourceArea.Rows.Count, i).Offset(1, 0).Value = vbEmpty Then

                LastRow = SourceBottomLeftCell.Row

                Exit For

            Else

                Dim CurrentLastCell As Range

                Set CurrentLastCell = SourceArea.Cells(SourceArea.Rows.Count, i).End(xlDown)

                If CurrentLastCell.Row < LastCell.Row Then

                    LastRow = CurrentLastCell.Row

                End If

            End If

        Next i

        

        Set TargetLastCell = ActiveSheet.Cells(LastRow, SourceBottomRightCell.Column)

    

    End If

    

    If Not TargetLastCell Is Nothing Then

    

        Dim TargetAreaName As String

        

        TargetAreaName = SourceArea.Cells(1, 1).Address(0, 0) & ":" & TargetLastCell.Address(0, 0)

        Set TargetArea = Range(TargetAreaName)

        

        On Error GoTo ErrHandler

        

        SourceArea.AutoFill Destination:=TargetArea

    

        TargetArea.Select

    

    End If



ErrHandler:



End Sub

 
2: 매크로의 단축키 Ctrl + E를 지정합니다.Ctrl + E를 단축키로 사용하는 이유는 Ctrl + E가 Excel 내장 기능에 사용되지 않고 Ctrl 키와 E 키가 모두 키보드의 왼쪽 구역에 있기 때문에 왼손으로 한 손으로 조작할 수 있다.
3: 워크북을 Excel 로드 매크로로 저장합니다.
4: Excel 로드 매크로를%programfiles%\Microsoft Office\Office12\XLSTART 디렉터리(Excel 2003 디렉터리:%programfiles%\Microsoft Office\Office11\XLSTART)로 복사하여 Excel이 시작될 때 매크로 코드를 자동으로 로드합니다.
 
따라갈 수도 있다여기 매크로 파일을 다운로드하여%programfiles%\Microsoft Office\Office12\XLSTART 디렉터리에 압축을 풀면 사용할 수 있습니다.다운로드된 매크로 파일은 Excel 2007에만 지원됩니다.Excel 2003의 경우 이전 단계를 따릅니다.
 
이렇게 하면 Excel에서 Ctrl + E를 누르면 아래로 자동으로 채워집니다.
 
결함:
VBA 매크로 코드에서 실행되는 작업이며 취소(undo)는 지원되지 않습니다.
 
버그를 보고하고 댓글을 남겨 주세요.

좋은 웹페이지 즐겨찾기