Excel & VBA---Brain Training
아래의 프로시져를 복사하여 붙여 넣고 실행시키시고
Sub MakeQuizSheet()
Dim iX As Integer
Dim iY As Integer
Dim arrFormula As Variant
arrFormula = Array("=INT(RAND()*100)+100", _
"=MONTH(TODAY())", _
"=YEAR(NOW())", _
"=MAX(R[3]C[3]:R[5]C[5])", _
"=REPT(""A"",3)", _
"=INT(AVERAGE(5,3,7,9,2))", _
"=SIN(RAND()*100)")
For iX = 1 To 1000
For iY = 1 To 30
If Int(Rnd() * 100) Mod 10 = 0 Then
Me.Cells(iX, iY).Formula = _
arrFormula(Int(UBound(arrFormula) * Rnd()))
Else
Me.Cells(iX, iY) = Int(Rnd() * 10000) + 1
End If
Next
Next
Me.UsedRange.Font.Name = "tahoma"
End Sub
여러개의 셀에 상수도 입력하고
수식도 입력하는 그냥 멍청한 코드다
문제는 이렇게 입력된 자료에서 수식이 입력된 셀만
한번에 접근하여
수식을 값으로 바꾸는 문제다
별 싱거운 문제이지만
의외로 쩔쩔 매는 분들이 많고
수식을 값으로 바꿔야 할 경우가 일상에서 많이 있으니
풀어 보시기 바란다
간단한 문제라서 그냥 웹에 표시한다
위의 구문을 실행하여 생성된 시트에서 아래구문을 실행해보시기 바란다
셀의 Formula속성으로 Value속성으로 바꿔 주면 된다..
원리를 알면 간단하다
복사하여 선택하여 붙여넣기를 선택하고 값만 붙여넣기를
구문으로 풀면 이렇게 간단한것이다
한꺼번에 선택하고,한꺼번에 바꾼다!!
Sub ConvertFormulaToValue()
Dim rData As Range
On Error Resume Next
Set rData = Range("A1").CurrentRegion.SpecialCells(xlCellTypeFormulas)
If rData Is Nothing Then MsgBox "수식이 있는 셀이 없습니다": Exit Sub
'아래두줄은 학습을 위한 구문..없어도 된다!!
rData.Select
MsgBox "선택하지 않고 해도 되지만..보기 위하여 선택하였슴" & _
"..이제 값으로 한꺼번에 바꾼다"
rData.Value = rData.Value
End Sub