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

 like (like)

추천:  2
파일:     sam.png (40.6KB) 조회:  1914
제목:   [RE]VBA로 특정 문자열이 위치한 범위를 다른시트로 옮기기
     
  Autoclave_log (A1036)
아래부터 가져오니 일부 데이터를 가져오지 못하는 경우가 발생하네요..

혹시 첨부 된 사진처럼 데이터를 가져오는 범위를 늘리고 싶은데 가능한가요?









엑셀 'Sheet1'에

A14 : Start
A525 : V_Start
A1036: AutoClave_log

이러한 내용이 있습니다.

[(3) Analyze] 버튼을 누르면

Start부터 V_Start 전 까지의 내용을 'Start' Sheet에 넣고
V_Start부터 Autoclave_log 전 까지의 내용을 'V_Start' Sheet에 넣고
Autoclave_Log부터 A행을 문자열이 끝나는 시점까지의 내용을 'Autoclave' Sheet에 넣고 싶습니다.



===============================
아래는 기존의 코드입니다
기존의 코드는 아래 2가지만 수행합니다.

Start Sheet : Start부터 V_Start전까지
V_Start Sheet : V_Start부터 Autoclave_Log전까지

[추가하고 싶은내용]
Autoclave_Log : Autoclave_Log부터 나머지 문자가 있는 끝까지
===============================

Sub getData()
    Dim vArray, vDB
    Dim rngLook As Range, rngT(3) As Range, rngDB(1) As Range
    Dim i As Integer, c As Integer
   
    vArray = Array("Start", "V_Start", "AutoClave_log", "45")
   
    For i = 0 To 3
        Set rngLook = Cells.Find(vArray(i), LookIn:=xlValues, lookat:=xlWhole)
        Set rngT(i) = rngLook
        
    Next i
    For i = 0 To 1
        c = rngT(i).Offset(1).End(xlToRight).Column
        Set rngDB(i) = Range(rngT(i).Offset(1), rngT(i + 1).Offset(-1)).Resize(, c)
        vDB = rngDB(i)
        With Sheets(vArray(i))
            .Cells.Clear
            .Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
        End With
    Next i
End Sub



https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=310178797


==============[like님 글에 대한 답변입니다]==============
아주 사소한부분에 문제가 있네요....

Sub getData()
    Dim vArray, vDB
    Dim rngLook As Range, rngT(3) As Range, rngDB As Range
    Dim i As Integer, c As Integer
   
    vArray = Array("Start", "V_Start", "AutoClave_log", "45")
   
    For i = 0 To 3
        Set rngLook = Columns(1).Find(vArray(i), LookIn:=xlValues, lookat:=xlWhole)
        Set rngT(i) = rngLook
    Next i
    
    For i = 0 To 2
        c = rngT(i).Offset(1).End(xlToRight).Column
        
        Set rngDB = Range(rngT(i).Offset(1), rngT(i + 1).Offset(-1)).Resize(, c)
        vDB = rngDB
        With Sheets(vArray(i))
            .Cells.Clear
            .Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
        End With
    Next i
End Sub
==============[dew님 글에 대한 답변입니다]==============
 
[불량 게시물 신고]  
        
  

작성일 : 2018-09-18(15:58)
최종수정일 : 2018-09-18(15:58)
 


 ◎ 관련글

  제 목   작성자   날짜
VBA로 특정 문자열이 위치한 범위를 다른시트로 옮기기 like 2018-09-18
[RE]VBA로 특정 문자열이 위치한 범위를 다른시트로 옮기기 dew 2018-09-18
[RE]VBA로 특정 문자열이 위치한 범위를 다른시트로 옮기기 like 2018-09-18
[RE]VBA로 특정 문자열이 위치한 범위를 다른시트로 옮기기 dew 2018-09-18