엑셀, 셀의 오른쪽 빈셀에 좌측 숫자를 읽어서, 다른 시트의 값을 수식으로 가져오기
Option Explicit Const CF = "=IFERROR(VLOOKUP((^),표1_45[[쪽수]:[명-권차]],3,0),"""")" Sub 표_수식_값() On Error GoTo ERR_RTN With Selection.ListObject.DataBodyRange With .Columns("e").Resize(, .Columns.Count - 4) On Error GoTo 0 Application.ScreenUpdating = 0 Application.Calculation = xlCalculationManual Dim n&, c As Range n = .Rows.Count For Each c In .Columns If WorksheetFunction.Count(c.Columns(0)) Then .Formula2 = Replace(CF, "(^)", c.Cells(1, 0).Address(0, 0)) .Value2 = .Value2 '// 값으로 End If Next End With: End With ERR_RTN: Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = 0 If Err Then MsgBox "현제 셀은 표가 아닙니다." & vbLf & _ "표 영역으로 이동 하거나 클릭 후 다시 실행 하세요...!" End Sub
Option Explicit Const CF = "=IFERROR(VLOOKUP((^),표1_45[[쪽수]:[명-권차]],3,0),"""")" Sub 표_수식_값() On Error GoTo ERR_RTN With Selection.ListObject.DataBodyRange With .Columns("e").Resize(, .Columns.Count - 4) On Error GoTo 0 Application.ScreenUpdating = 0 Application.Calculation = xlCalculationManual Dim n&, c As Range n = .Rows.Count For Each c In .Columns If WorksheetFunction.Count(c.Columns(0)) Then .Formula2 = Replace(CF, "(^)", c.Cells(1, 0).Address(0, 0)) .Value2 = .Value2 '// 값으로 End If Next End With: End With ERR_RTN: Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = 0 If Err Then MsgBox "현제 셀은 표가 아닙니다." & vbLf & _ "표 영역으로 이동 하거나 클릭 후 다시 실행 하세요...!" End Sub