반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


원래 이 Tip 도 지난 글과 같이 올리려고 했는데 애초 생각과 다르게 이전에 만들어 놨던 다른 component들까지 다 정리하는 바람에 따로 정리하게 됐습니다.


Sub 평균구하기함수()

    Dim firstCell As Range
    Dim lastCell As Range
    Dim lastRow As Double
    Dim rngtest As Range
    Dim 평균 As String

    Call clickLink("Cell주소")

    ''''''' get the first Cell to calculate
    Set firstCell = getBelowCell2("필드이름1")
   
    ''''''' get the last row to calculate
    lastRow = activateLastrow2Cal2("필드이름2")
    
    ''''''' get the last Cell to calculate
    Set lastCell = firstCell.Offset(lastRow - firstCell.Row, 0)
   
    Call filterOption("필드이름3", "1")
    Call filterOption("필드이름4", ">0")
   
    ' Get count of rows
    Set rngtest = Range(firstCell, lastCell)
    rngtest.Select
   
    평균 = WorksheetFunction.Average(rngtest.SpecialCells(xlCellTypeVisible))
   
    Call writeTable5("Sheet 이름", 0, 0, 평균 , "K11")

End Sub



위에 한글로 표기한 것은 해당 엑셀에 맞춰서 적당한 값을 넣어야 하는 겁니다.

변수명이나 필드이름 등은 회사 업무와 관련이 있는 거라서 회사 업무 내용을 공개하지 않기 위해 이름을 변경했습니다.


여기서 살펴볼 것은 아래 라인 입니다.


평균 = WorksheetFunction.Average(rngtest.SpecialCells(xlCellTypeVisible))


나머지는 이전 글에 각 함수 내용을 올려 놓았으니 그 글을 참조하시면 됩니다.

진행 순서도 똑 같구요.

필터링 후 선택된 Range의 평균을 구하는 것은 WorksheetFunction.Average(레인지.SpecialCells(xlCellTypeVisible)) 를 사용하면 됩니다.


결과 값은 String에 담구요.

이걸 Integer나 Double에 담아봤더니 에러가 나더라구요.

Converting을 해서 담던가 아니면 그냥 String 변수에 담아야 합니다.


한가지 더 참조한다면 아래 라인 입니다.


Call filterOption("필드이름4", ">0")


greater than 0 로 필터링을 어떻게 할 까 궁금했는데 그냥 위와 같이 >0 을 전달하면 되는군요.

filterOption() 함수는 이전 글에 있으니 보시고 싶으시면 바로 전 글을 보시면 됩니다.



반응형

Comment