2017-07-26 12 views
0

私は同様の質問が回答されていることは知っていますが、それらは私のためには機能しませんでした。私は優れた専門家ではないので、私はいくつかの助けをすることができます。Excel 2010分割セルと重複行

私は列A〜Pにデータを持ちますが、列IとMにはセミコロンで区切られたデータがあります。私は列IとMの両方を分割し、他のすべてのデータと重複した行を作成する必要があります。私は私を分割して重複した行を作ってからMを繰り返す必要があるとは思いますが、わかりません。

もう一度申し訳ありませんが、同様の質問です。

答えて

0

あなたの説明によると、これはあなたが望むことを行うはずです。

Option Explicit 

'Qual coluna possui os termos que repetem? 
Const ANALYSIS_ROW1 As String = "I" 
Const ANALYSIS_ROW2 As String = "M" 

'Em qual linha começam os dados? 
Const DATA_START_ROW As Long = 2 

Sub ReplicateData() 
    Dim iRow As Long 
    Dim LastRow As Long 
    Dim ws As Worksheet 
    Dim iSplit() As String 
    Dim iIndex As Long 
    Dim iSize As Long 

    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    With ThisWorkbook 
     .Worksheets("Sheet1").Copy After:=.Worksheets("Sheet1") 
     Set ws = ActiveSheet 
    End With 

    With ws 
     LastRow = .Cells(.Rows.Count, ANALYSIS_ROW1).End(xlUp).Row 
    End With 


    For iRow = LastRow To DATA_START_ROW Step -1 
     iSplit = Split(ws.Cells(iRow, ANALYSIS_ROW1).Value2, ";") 
     iSplit = Split(ws.Cells(iRow, ANALYSIS_ROW2).Value2, ";") 
     iSize = UBound(iSplit) - LBound(iSplit) + 1 
     If iSize = 1 Then GoTo Continue 

     ws.Rows(iRow).Copy 
     ws.Rows(iRow).Resize(iSize - 1).Insert 
     For iIndex = LBound(iSplit) To UBound(iSplit) 
      ws.Cells(iRow, ANALYSIS_ROW1).Offset(iIndex).Value2 = iSplit(iIndex) 
      ws.Cells(iRow, ANALYSIS_ROW2).Offset(iIndex).Value2 = iSplit(iIndex) 
     Next iIndex 
Continue: 
    Next iRow 

    Application.CutCopyMode = False 
    Application.Calculation = xlCalculationAutomatic 
    Application.ScreenUpdating = True 
End Sub 
+0

これは完全に機能しました。ありがとう – Matt

0

Iなります

  1. 挿入(ライン2のための例)以下Iおよび使用式後の2列:この式J

  2. セットセル:=LEFT(I2;SEARCH(";";I2)-1)

  3. セットこの式を有するKの細胞:=MID(I2;SEARCH(";";I2)+1;10000)

  4. 2つの新しい列の内容との貼り付けを同じ場所に値としてコピーします。

  5. 最後に列Iを削除します。

...そして、あなたは常にマクロが新しい列の新しい値を書き込む、Split()機能とそれらを分割し、値を読み取る、行を反復処理するために書くことができM

列に同じことを行うが、私は努力する価値があるとは思わない。

関連する問題