2016-07-16 4 views
0

에 사본을 엑셀 :VBA 내가이 질문을 다음과 같이 몇 가지 도움을받을하려는 다른 시트

먼저

내가 루프와 세포

B68에 대한 웹 사이트에서 다른 값을 얻을 수있는 Sheet1에 있고, B69, B67, A61은 D85 및 B73는 I 순서대로 삽입하거나 이들 값을 복사 VBA를 작성하고자

A1, B1, C1, D1, E1, F1

하지만과 내 현재 코드가 Sheet1이면 셀이 비어 있습니다. 복사 된 셀이 위로 이동합니다 (최대 (끝 (xlUP)). 값에 관계없이 모든 행의 데이터 다음 행을 만들 필요가 있습니다. 복사 된 셀조차도 비어 있습니다.

둘째,

는 Sheet1의 모든 시간 D85 그것이 D86의 값 regardles, 셀 D86에서 값을 복사합니다 다음 비어있는 상태 ... 추가

DoEvents 

    'Copy to Another sheet 

    With Worksheets("Sheet2") 
     .Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B68") 
     .Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B69") 
     .Range("C" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B67") 
     .Range("D" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("A61") 
     .Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("D85") 
     .Range("F" & Rows.Count).End(xlUp).Offset(1, 0) = ws.Range("B73") 


    End With 

답변

1

코드는 UsedRange의 마지막 행을 찾습니다 Sheet2에서 일부 셀이 비어 있더라도. 그런 다음 ws 시트의 데이터를 Sheet2으로 복사합니다.

Dim des_ws As Excel.Worksheet 

Set des_ws = ActiveWorkbook.Worksheets("Sheet2") 

LastRow = des_ws.UsedRange.Rows(des_ws.UsedRange.Rows.count).row + 1 

With des_ws 
    .Range("A" & LastRow) = ws.Range("B68") 
    .Range("B" & LastRow) = ws.Range("B69") 
    .Range("C" & LastRow) = ws.Range("B67") 
    .Range("D" & LastRow) = ws.Range("A61") 
    If ws.Range("D85") = "" Then 
     .Range("E" & LastRow) = ws.Range("D86") 
    Else 
     .Range("E" & LastRow) = ws.Range("D85") 
    End If 
    .Range("F" & LastRow) = ws.Range("B73") 
End With 
+0

OP는 웹 사이트에서 sheet1의 데이터를 검색 할 때 Sheet2에 레코드를 추가합니다. Sheet2의 값만 덮어 쓰고 레코드를 추가하지 않습니다. –

+0

@ThomasInzina 방금 요청을 보지 못했습니다. –

+0

@ThomasInzina LOL, 나는 동의한다, 문제는 내가 여기에 약간의 질문을했을 때 (그렇게 쉽지 않다) 나는 우리가 그들에게주는 것처럼 빨리 대답을 얻지 못했다. –

관련 문제