2016-06-14 4 views
-1

안녕 새내기 (매우 새로 만들기) 여기 나는 12 자리 (월)의 가변 데이터를 가지고 있습니다. 각 시트는 해당 월의 고객 지출을 보여 주며, 어떻게 든 각 고객을 한 시트에 대조해야합니다.하나의 가변 길이 워크 시트에서 다른 가변 길이 워크 시트로 복사

일반적으로 나는 excel에서 vlookup 공식과 같은 간단한 것을 사용할 것이지만 신규 고객이 일년 내내 가입 할 수 있기 때문에이 정보를 정렬하는 다른 방법이 필요합니다. 일반적으로 계정 코드를 내 vlookup 소스로 사용합니다.

그래서 나는 VBA를 사용해야하지만이 같은 것을 시작할 위치를 찾는 데 어려움을 겪고 있다고 생각합니다.

도움을 주시면 감사하겠습니다.

내가 제일 좋을 것 같아요 매월 하나의 마스터 시트에 복사 한 다음 거기에서 이동하는 것이 가장 좋습니다. 그렇다면 활성 시트의 행을 찾아서 마스터 시트에 복사해야하지만 이미 복사 한 내용을 덮어 쓰지 않아도됩니다.

누군가 올바른 방향으로 나를 가리킬 수 있습니까?

다음과 같은 코드를 사용하여 워크 시트의 첫 번째 빈 행을 찾을 수 있습니다
+0

다음 줄을 생각해보십시오. 새로운 고객을 추가 할 때 동적으로 업데이트되는 고유 한 고객 목록. 내 관점에서 월별 시트는 중요하지 않습니다. 월간 지출은 수식이나 VBA 코딩으로 쉽게 계산할 수 있으므로 고객 현명한 시트를 사용하는 것이 좋습니다. 어떤 경우에도 귀하의 링크 ID는 고객이됩니다. 따라서 새로운 고객이 추가되면 그의 시트가 자동으로 생성되고 고객이 시트를 남겨두면 보관되지만 마스터 시트는 그의 과거 기록을 유지합니다. 먼저 다양한 데이터 포인트간에 데이터가 어떻게 그리고 어떻게 흐를 지에 대한 파란색 프린트를 준비하십시오. – skkakkar

답변

0

:

Dim ws As Worksheet : Set ws = ThisWorkbook.Worksheets("SheetName") 
Dim firstEmptyRow 
' Get the first empty row in column "A" by finding the last used row and adding 1. 
firstEmptyRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1 

ws.Range("A" & firstEmptyRow).Value = "Whatever you want to put in the first empty row" 
0

가 이상적으로 테스트 스텁과 당신이 찾고있는 결과의 초안을 제공 할 것이다 이루다. 그러나 나는 여전히 당신을 시작할 수 있습니다.

  1. 모든 워크 시트
  2. 복사
  3. 두 추가 공백 라인은 시트 이름 다음에 데이터
  4. 사이에 추가 된 새 통합 문서에 각 워크 시트의 사용 된 범위를 통해이 매크로 루프
  5. 그리고 빈 줄이 두 개 더 있습니다.

데이터의 모양에 대해서는 알지 못합니다. 그러나 좋은 출발점입니다.

Sub CombineWorksheets() 
    Dim lastRow As Long, r As Range 
    Dim ws As Worksheet 
    Dim wbNew As Workbook 
    Set wbNew = Workbooks.Add 

    For Each ws In ThisWorkbook.Worksheets 
     Set r = ws.UsedRange 
     lastRow = lastRow + r.Rows.Count + 5 
     wbNew.Worksheets(1).Cells(lastRow - 2, 1) = ws.Name 

     r.Copy Destination:=wbNew.Worksheets(1).Cells(lastRow, 1) 
    Next 

End Sub 
+0

고맙다. 나는 코드를 가지고 무엇을 할 수 있는지 알아볼 것이다. – user6463851