Pytanie : Przodować/csv, ruch rząd kolumna prześcieradło opierać się na odmienianie wartość w kolumna

Cześć i potrzebować niektóre pomoc z poruszający kolumna w Excel.
I am nie VBA/Macro biegły alhough gdy i czytać the kod, i gonić błąd, i rozumieć co być happening.

Our cel być informacja od the dołączać CSV kartoteka i the wartość my potrzebować w XML file.

One the problem my biegać w być że the CSV kartoteka zawierać wieloskładnikowy ordernumbers w jeden kartoteka. My woleć Przodować lub na ordernumber.

Column C pokazywać `inkooporder `ty móc że the wartość w ten szpaltowy zmiana. i polubić kawałek kod który kopiować the rząd dokąd the `inkooporder´ być równy, i przeszłość ono nowy prześcieradło dokąd the sheetname być the ´inkooporder´.
So w the dołączać przykład ono przedstawienie 10 różny inkoopordernumbers więc 10 prowadzić 10 różny sheets.

in the końcówka i polubić w nowy rząd od nowy CSV, biegać the macro i ono przetwarzać znowu the nowy informacja.

hopefully VBA/expert móc niektóre code.

much appreciated
Attachments:

Odpowiedź : Przodować/csv, ruch rząd kolumna prześcieradło opierać się na odmienianie wartość w kolumna

Cześć,
I załatwiać the problem ty zakładać.  The następujący kod musieć teraz dużo lepiej dla ty:
Okręt podwodny splitVersion2 ()

Ciemnawy lastOrder, inkooporder Sznurek
Ciemnawy rowCount Jako Integer

lastrow = [b65536]. Końcówka (xlUp). Rząd
rowCount = 2
Kolumna ("A: S"). Wybiórka
    ActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Clear
    ActiveWorkbook.Worksheets ("Sheet1"). Sort.SortFields.Add Klucz: =Range ("C2: C34") _
        , SortOn: =xlSortOnValues, Rozkaz: =xlAscending, DataOption: =xlSortNormal
    Z ActiveWorkbook.Worksheets ("Sheet1"). Rodzaj
        .SetRange Pasmo ("A1: S34")
        . Chodnikowiec = xlYes
        .MatchCase = Fałszywy
        . Orientacja = xlTopToBottom
        .SortMethod = xlPinYin
        . Stosować
        ActiveSheet.Cells ((1), 1).Select
    Kończyć Z
lastOrder = (0)
Dla i = 2 Lastrow
    inkooporder = Prześcieradło ("Sheet1"). Komórka (i, 3)
    Jeśli nie inkooporder = lastOrder Wtedy
        Worksheets.Add (Póżniej: =Worksheets (1)). Imię = inkooporder
        Prześcieradło ("Sheet1"). Wybiórka
        Cells.Select
        Selection.Copy
        Prześcieradło (inkooporder). Wybiórka
        Cells.Select
        Selection.PasteSpecial Pasta: =xlPasteFormats, Operacja: =xlNone, _
            SkipBlanks: =False, Przestawiać: =False
        Pasmo ("A1"). Wybiórka
        Dla x = (1) 19
            Prześcieradło (inkooporder). Komórka ((1), x) = Prześcieradło ("Sheet1"). Komórka ((1), x)
        Następny x
        rowCount = 2
    Kończyć Jeżeli
    Dla x = (1) 19
        Prześcieradło (inkooporder). Komórka (rowCount, x) = Ciąć na arkusze ("Sheet1"). Komórka (i, x)
    Następny x
    rowCount = rowCount + (1)
    lastOrder = inkooporder
Następnie i
Prześcieradło ("Sheet1"). Wybiórka
Pasmo ("A1"). Wybiórka
Końcówka Okręt podwodny
Inne rozwiązania  
 
programming4us programming4us