Hmm ! er det ikke nemmere bare at oprette dem påny ?
HVis det hele kommer i rækkefølge, så er det bare at oprette de to første forkomster, marker og trække i nederste højre hjørne til det passer. Skal formentlig gøres et par gange !
Jeg forstår ikke helt hvad du mener. Er alle 98000 poster fra samme dato, eller ønsker du at der skal være en række pr. dato? Hvis det sidste er tilfældet, hvor mange tidspunkter kan der så forekomme pr.- dato (husk, Excel har kun 256 kolonner).
Hvor mange ark må de 98000 poster fordeles over, og hvordan skal de fordeles. Husk, at Excel kun har 65000+ rækker pr ark.
Option Base 1 Sub test() Dim i, kol, ro, rækker As Integer Dim ta As Variant rækker = Range("A65536").End(xlUp).Row ta = Sheets("Ark1").Range("A2:B" & rækker) kol = 1 ro = 1 With sheets("Ark2") .Cells(ro, kol) = ta(1, 1) kol = kol + 1 .Cells(ro, kol) = ta(1, 2) For i = 2 To rækker - 1 If ta(i, 1) <> ta(i - 1, 1) Then kol = 1 ro = ro + 1 .Cells(ro, kol) = ta(i, 1) kol = kol + 1 .Cells(ro, kol) = ta(i, 2) Else kol = kol + 1 .Cells(ro, kol) = ta(i, 2) End If Next End Sub
Denne gennemløber alle ark og tilføjer data i et nyt ark
Indsæt denne kode : Sub trans() Dim x As Range Dim rc Dim F As Worksheet
numark = ActiveWorkbook.Worksheets.Count Sheets.Add gemsheet = ActiveSheet.Name aktrow = 0 For Each F In ActiveWorkbook.Worksheets If F.Name <> gemsheet Then aktkol = 1 aktrow = aktrow + 1 F.Activate F.Range("A2").Select Selection.CurrentRegion.Select rc = Selection.Rows.Count If rc > 1 Then gemdato = DateValue((F.Range("a2"))) Worksheets(gemsheet).Cells(aktrow, aktkol).Value = F.Range("a2") Worksheets(gemsheet).Cells(aktrow, aktkol).NumberFormat = "m/d/yy" aktkol = 2 For i = 1 To rc If IsDate(F.Range("a" & i + 1)) Then If (DateValue(F.Range("a" & i + 1)) = gemdato) And (aktkol < 255) Then Sheets(gemsheet).Cells(aktrow, aktkol).Value = TimeValue(F.Range("a" & i + 1)) Worksheets(gemsheet).Cells(aktrow, aktkol).NumberFormat = "hh:mm" aktkol = aktkol + 1 Else gemdato = DateValue(F.Range("a" & i + 1)) aktrow = aktrow + 1 aktkol = 2 Sheets(gemsheet).Cells(aktrow, 1).Value = F.Range("a" & i + 1) Worksheets(gemsheet).Cells(aktrow, 1).NumberFormat = "m/d/yy" Sheets(gemsheet).Cells(aktrow, aktkol).Value = TimeValue(F.Range("a" & i + 1)) Worksheets(gemsheet).Cells(aktrow, aktkol).NumberFormat = "hh:mm" aktkol = aktkol + 1 End If End If Next End If End If Next
Denne linie bruges ikke mere ! Den er fra første forsøg !
Dine data er ikke helt ens hele vejen igennem, der er nogle gange der ikke er et tidspunkt til datoen ! Så i det tilfælde bliver datoen bare ført med alene !
Desuden indeholder kolonne A jo alle data (dato og tid) så jeg har valgt kun at benytte kolonne A (da ARK2 desuden kun har en kolonne) !!
Bare lige en generel kommentar - ved ikke om det er nævnt ovenfor, men Excel kan kun håndtere 65536 rækker og kun(!!!!) 256 kolonner (=IV) - det kan give problemer med at transponere kolonner til rækker... /Martin
Men der er plads til 65536*256 = 16.777.216 data i et ark ! Så det holder da til et par datamængder gange 98000 poster.
puller> tak for points ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.