2017-04-18 1 views
0

안녕하세요 다른 테이블의 2 개 값을 기반으로 테이블에 값을 생성하고 싶습니다. 이 문제를 말로 설명하기가 어렵 기 때문에 예를 들어 설명해 보겠습니다. 숫자 열 (2)의 0 인 경우다른 테이블의 2 개 값을 기반으로 Excel 테이블을 만드는 방법

Building type    Number 
Hospital      4   
Fire station     2 
Hotel.      0 

표 2

Hospital 1 
Hospital 2 
Hospital 3 
Hospital 4 
Fire station 1 
Fire station 2 

참고 예 표 1 요구의 데이터를 표 2

표 1의 값을 채우는 데 사용될 테이블 1에서 해당 값을 테이블 2에 생성하면 안됩니다.

+0

안녕하세요. @jnevill에게 감사드립니다. 이것은 나를 위해 정말 잘 작동했습니다. 번호가 열 10의 열 2 비트에없는 경우 코드에서 변경해야하는 내용은 무엇입니까? 또한 다른 열을 추가하여 도시를 말하고 건물 유형에 해당하는 테이블 2로 이동해야하는 경우 무엇을 변경해야합니까? – avni

답변

0

일부 VBA에서는 다음과 같이 신속하게이를 수행 할 수 있습니다.

Sub makenewtable() 
    Dim rngTable1 As Range 
    Dim rngTable2 As Range 
    Dim rngReadRow As Range 
    Dim intWriteRow As Integer 
    Dim intLoop As Integer 

    'set this to your first table 
    Set rngTable1 = Sheet1.Range("A2:B4") 

    'set this to the first row to write to: 
    Set rngTable2 = Sheet2.Range("A2") 
    rngWriteRow = 0 

    'Loop through the first table row by row 
    For Each rngReadRow In rngTable1.Rows 
     'Loop the number of times the first table says we should 
     For intLoop = 1 To rngReadRow.Cells(1, 2).Value 
      'write the value out to the second table 
      rngTable2.Offset(rngWriteRow, 0) = rngReadRow.Cells(1, 1).Value 
      rngTable2.Offset(rngWriteRow, 1) = intLoop 

      'increment the row to which we are writing 
      rngWriteRow = rngWriteRow + 1 
     Next 
    Next rngReadRow 

End Sub 
+0

안녕하세요. @jnevill에게 감사드립니다. 이것은 나를 위해 정말 잘 작동했습니다. 번호가 열 10의 열 2 비트에없는 경우 코드에서 변경해야하는 내용은 무엇입니까? 또한 다른 열을 추가하여 도시를 말하고 건물 유형에 해당하는 테이블 2로 이동해야하는 경우 무엇을 변경해야합니까? – avni

+0

'rngTable1'을 J :'Set rngTable1 = Sheet1.Range ("A2 : J4")'로 바꾼 다음 루프를 결정하기 위해'Cells()'를 변경하십시오 :'For intLoop = 1 To rngReadRow.Cells (1, 10) .Value' – JNevill

관련 문제