2017-04-15 1 views
1

인용 통합 문서를 만들었습니다. 각 제품에 QTY/DESCRIPTION/UNIT/TOTAL이 포함 된 8 개의 시트가 있으며 필요한 항목의 수량을 한 자리에 입력하여 각 시트에 제품 선택을합니다.Excel에서 행 추가, 계속

Main을 만들고 싶습니다. QTY가 0이 아닌 경우에만 다른 시트의 항목을 가져옵니다. QTY가 0이면 행이 비어 있고 그렇지 않은 경우 적절한 데이터가 채워지지만 여기에는 ' 붙어있어.

기본적으로 나는 Main 시트를 수식을 통해 이동하지만 테이블을 계속 이동하려면 다음 테이블 (다음 시트)로 이동하여 계속 진행하고 싶습니다. 나는 빈 행이 없기를 바란다. 이것이 가능한가?

현재 코드 : 당신이하려는 모든 공백이 아닌 또는 비 - 제로 수량이 다른 워크 시트에서 행 (셀 값이 아닌 수식)에 끌어 경우

Sub delblankrows() 

Dim s1 As Worksheet 
Dim tmpR As Range 
Dim rowcount As Long, colcount As Long, i As Long, j As Long, k As Boolean 

Set s1 = Sheets("Complete") 
Set tmpR = s1.UsedRange 
rowcount = tmpR.Rows.Count 
colcount = tmpR.Columns.Count 

For i = rowcount To 1 Step -1 
    k = 0 
For j = 1 To colcount 
    If tmpR.Value2(i, j) <> "" Then 
     k = 1 
     Exit For 
    End If 
Next j 

End Sub 
+1

이것은 " 나를 위해 코드 "(또는 심지어"누군가 이렇게 돈을 쓰는 데 너무 싼 회사의 코드 ") 사이트를 방문하십시오. 최소한 코드에서 시작하십시오. 그리고 나서/특정 문제로 어려움에 처했을 때 다시 돌아와서 우리가 대답 할 수있는 특정 질문을하십시오 - 우리는 당신을 도울 것입니다. – YowE3K

+0

나는 그것을 이해하려고 노력하고 있으며 스스로 해보기 위해 노력하고있다. 개별 매크로가 있지만 모두 함께 사용하는 방법을 알아낼 수 없습니다. 나는 단지 약간의 도움을 원한다, 나는 그것 모두가 나를 위해 끝내지 않았다. – adams

+0

작업을 완료했다면, 작성한 코드를 게시하십시오. 그렇게하면 ** 당신이 가지고있는 문제를 해결할 수 있습니다 ** ** 도움이됩니다. 문제의 코드가없는 문제는 특정 작업을 수행하는 데 수백 가지 방법이 있지만 문제 중 일부만 코드에 쉽게 통합된다는 것입니다. 작성한 코드를 볼 수 있으면 유용하게 사용할 수있는 제안으로 제한하십시오.) – YowE3K

답변

0

(가정 열 "A"에 있어야 함) 다음을 수행하면됩니다. 그러나 당신의 문제 진술서에서 당신은 그 일에 더하여 뭔가를하고있을 것입니다. 이 코드는 각 워크 시트에 머리글 행이 있고 행 2에서 데이터가 시작된다고 가정합니다. 또한 "A"에서 "D"열의 데이터 만 있다고 가정합니다.

Option Explicit 

Sub AddRowContinueOn() 
    Dim ws As Worksheet, cws As Worksheet 
    Dim cLRow As Integer, sLRow As Integer 

    Set cws = Worksheets("Complete") 
    cLRow = cws.Cells(cws.Rows.Count, "A").End(xlUp).row + 1 

    Dim i As Integer, val As Integer 
    For Each ws In ActiveWorkbook.Worksheets 
    If ws.Name <> "Complete" Then 
     sLRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).row 
     For i = 2 To sLRow 
     val = CInt(ws.Cells(i, "A").Value) 
     If val <> 0 Then 
      cws.Range("A" & cLRow & ":D" & cLRow).Value = ws.Range("A" & i & ":D" & i).Value 
      cLRow = cLRow + 1 
     End If 
     Next 
    End If 
    Next 

End Sub 
+0

이것은 완벽하게 작동합니다. – adams

+0

이것은 내가 기대했던 것처럼 거의 정확하게 작동합니다. 그러나 나는 내가 할 수 있기를 희망하는 2 개의 작은 개조를하려고 애썼다. 나는 잠시 동안 코드를 가지고 놀았지만 작동시키지 못한다. 먼저 QTY 셀 중 하나가 변경되면 자동으로 매크로를 실행하고 싶습니다. 둘째, QTY가 다시 0으로 변경되면 시트 "전체"에서 행을 삭제할 수 있습니까? – adams