OfficeTutor.com
배움터 나눔터 교육센터 오튜장터
 통합검색  
  Home > 나눔터 > 엑셀 > 묻고답하기
엑셀
워드
액세스
파워포인트
아웃룩
프런트페이지
인포패스
원노트
비지오
쉐어포인트
포토드로우
퍼블리셔
오피스공통
MVP 안내
MVP 명예의 전당
MVP 카페

 

 

 

 
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  0
파일:     엑셀 질문(9)_Ans.xlsm (52.7KB) 조회:  63
제목:   [RE]테이블 값 가져오기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >>

안녕하세요,

첨부파일에서 자료탭에 있는 정보를 기본으로 사무직 탭에서 노란색 부분 처럼 정보를 가져오면 좋겠습니다.

-가능하다면 가져오는 정보가 금액 오름차순으로 가져오면 좋겠습니다.

-가능하다면 상한(B3), 하한(B4)이 수시로 변하는데, 상한 이상인 금액은 빨간색, 하한 이하인 금액은 파란색으로 오면 좋겠습니다.


대단히 감사합니다.
==============[피닉스님 글에 대한 답변입니다]==============

첨부화일 참고하세요...

Sub getData()
    Dim wst As Worksheet
    Dim rData As Range
    Dim rStaff As Range, rX As Range
    
    Dim sGuBun As String
    
    Dim rTg As Range, lRow As Long, lColor As Long
    Dim lMoney As LongLong, lUp As LongLong, lDn As LongLong
    
    Dim rFind As Range, sAddr As String
    
    Call SpeedOn
    
    Set rData = Worksheets("자료").Range("a3:AD54") ' B-성명, E-직위, F-부서, O-구분, AD-연봉
    
    Set wst = ActiveSheet
    
    sGuBun = wst.Cells(1)
    sGuBun = wst.Name
    
    ' 기존 자료초기화
    wst.Range("A6:R100").ClearContents
    
    Set rStaff = wst.Rows(2).SpecialCells(2)       ' xlCellTypeConstants
    
    For Each rX In rStaff.Cells
        If rX <> "" Then
            lUp = rX.Cells(2, 2)
            lDn = rX.Cells(3, 2)
            
            Set rTg = rX.Offset(4)
            
            lRow = 0
            Set rFind = rData.Columns("O").Find(What:=sGuBun, Lookat:=xlWhole)
            If Not rFind Is Nothing Then
                sAddr = rFind.Address
                Do
                    With rFind.EntireRow
                        If .Cells(1, "E") = rX Then
                            lRow = lRow + 1
                            rTg.Cells(lRow, 1) = .Cells(1, "B")
                            rTg.Cells(lRow, 2) = .Cells(1, "F")
                            lMoney = .Cells(1, "AD")
                            rTg.Cells(lRow, 3).Value = Format(lMoney, "#,##0")
                            
                            If lMoney > lUp Then
                                lColor = RGB(255, 0, 0)
                            ElseIf lMoney < lDn Then
                                lColor = RGB(0, 0, 255)
                            Else
                                lColor = RGB(0, 0, 0)
                            End If
                            rTg.Cells(lRow, 1).Resize(1, 3).Font.Color = lColor
                        End If
                    End With
                    Set rFind = rData.Columns("O").FindNext(rFind)
                Loop While Not rFind Is Nothing And rFind.Address <> sAddr
                
                If lRow > 0 Then
                    With rTg.Resize(lRow, 3)
                        .Sort Key1:=.Cells(1, 3), Header:=xlNo
                    End With
                End If
            End If
        End If
    Next

    Call SpeedOn(False)
End Sub
 
[불량 게시물 신고]  
        
  

작성일 : 2019-10-10(08:46)
최종수정일 : 2019-10-10(08:46)
 


 ◎ 관련글

  제 목   작성자   날짜
테이블 값 가져오기 피닉스 2019-10-08
[RE]테이블 값 가져오기 dew 2019-10-10
[RE]실행중에러가 발생했습니다. 피닉스 2019-10-10

 
 
회사소개 | 이용약관 | 개인정보 처리방침 | 회원정보수정 | 교육신청 및 문의 | 이메일무단수집거부 위로

오피스튜터 블로그 오피스튜터페이스북 오피스튜터유투브
110-722 서울 종로구 세종대로23길 47, 601-74 ㈜오피스튜터 ☎1544-4102 대표이사 : 전경수
개인정보관리책임자 : 이희진(privacy@officetutor.com) 사업자등록번호 120-86-14501
통신판매업신고 2013-서울종로-0547
norton
Copyright ⓒ OfficeTutor.com 이 페이지의 저작권은 ㈜오피스튜터와 콘텐츠 제공자에게 있습니다. 무단 복제를 금합니다.
Microsoft 및 Office 로고는 미국, 대한민국 및/또는 기타 국가에서의 Microsoft Corporation 등록 상표 또는 상표입니다.