|
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님 글에 대한 답변입니다]==============
==============[like님 글에 대한 답변입니다]==============
아래와 같이 수정하시면 되겠네요.
Sub getData()
Dim vArray, vDB
Dim rngLook As Range, rngT(3) As Range, rngDB As Range
Dim i As Integer
vArray = Array("Start", "V_Start", "AutoClave_log")
For i = 0 To 2
Set rngLook = Columns(1).Find(vArray(i), LookIn:=xlValues, lookat:=xlWhole)
Set rngT(i) = rngLook
Next i
For i = 0 To 2
If i = 2 Then
Set rngDB = Intersect(rngT(i).CurrentRegion, Range(rngT(i).Offset(1), rngT(i).End(xlDown)).EntireRow)
Else
Set rngDB = Intersect(rngT(i).CurrentRegion, Range(rngT(i).Offset(1), rngT(i + 1).Offset(-1)).EntireRow)
End If
vDB = rngDB
With Sheets(vArray(i))
.Cells.Clear
.Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
End With
Next i
End Sub
|
|