내역관련/내역자료

횡방향, 종방향 수식복사, 붙여넣기

고추탄 2026. 3. 30. 19:42

Option Explicit

Sub CopyFormulasByCondition_Column()
    
 '★★횡방향 : 상단 비목 중 '금액' 열들에 소집계 수식 붙여넣기★★
    
  Dim rng As Range
  Dim firstRowNum As Long
  Dim lastRowNum As Long
  Dim colNum As Long
  Dim colLetter As String
  
  Dim ws As Worksheet
  Dim lastCol As Long
  Dim col As Long
    
  Set ws = ActiveSheet
    
 '현재 선택된 영역
  Set rng = Selection
  
 '선택 영역의 첫 번째 열 번호
  colNum = rng.Column
    
 '첫 번째 행 번호
  firstRowNum = rng.Rows(1).Row
    
 '마지막 행 번호
  lastRowNum = rng.Rows(rng.Rows.Count).Row
    
 '7행의 마지막 열 찾기
  lastCol = ws.Cells(7, ws.Columns.Count).End(xlToLeft).Column
    
 '7행 전체를 순회
  For col = 1 To lastCol
      
      If ws.Cells(7, col).Value = "금액" Then
        
        '해당 열의 106행, 107행 수식 복사 상대주소로 붙여넣기
         ws.Cells(firstRowNum, col).FormulaR1C1 = _
         ws.Cells(firstRowNum, colNum).FormulaR1C1
         ws.Cells(lastRowNum, col).FormulaR1C1 = _
         ws.Cells(lastRowNum, colNum).FormulaR1C1
        
      End If
    
  Next col

End Sub


Sub CopyFormulasByCondition_Row()
    
 '★★종방향 : 잔여 수량집계 수식 붙여넣기★★
 
  Dim rng As Range
  Dim firstRowNum As Long
  Dim lastRowNum As Long
  Dim nRow As Long
  Dim colNum As Long
  
  Dim ws As Worksheet
    
  Set ws = ActiveSheet
    
 '현재 선택된 영역
  Set rng = Selection
  
 '선택 영역의 첫 번째 열 번호
  colNum = ActiveCell.Column
    
 '첫 번째 행 번호
  firstRowNum = rng.Rows(1).Row
    
 '마지막 행 번호
  lastRowNum = rng.Rows(rng.Rows.Count).Row
    
 '행 전체를 순회
  For nRow = firstRowNum To lastRowNum Step 2
      
        '해당 열의 106행, 107행 수식 복사 상대주소로 붙여넣기
         ws.Cells(nRow + 1, colNum).FormulaR1C1 = _
         ws.Cells(firstRowNum + 1, colNum).FormulaR1C1
        
  Next nRow

End Sub


Sub GetActiveCellColumnLetter()

 '★★현재 셀의 열 문자★★

  Dim colLetter As String
  colLetter = Split(Cells(1, ActiveCell.Column).Address(True, False), "$")(0)
  MsgBox "현재 셀의 열 문자는 " & colLetter & " 입니다."

End Sub

횡방향,종방향 수식복사 붙여넣기.txt
0.00MB

LIST