Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

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