04. juni 2010 - 09:19Der er
7 kommentarer og 1 løsning
Eksporter data som ekstern fil
Jeg har fundet denne programstump, som henter kildedata fra en pivottabel i regnearket, og skriver resultatet / kildedata i en ny arkfane :
Public Sub ExtractPivotTableData()
Dim objActiveBook As Workbook Dim objSheet As Worksheet Dim objPivotTable As PivotTable Dim objTempSheet As Worksheet Dim objTempPivot As PivotTable
If TypeName(Application.Selection) <> "Range" Then Beep Exit Sub ElseIf WorksheetFunction.CountA(Cells) = 0 Then Beep Exit Sub Else Set objActiveBook = ActiveWorkbook End If
With Application .ScreenUpdating = False .DisplayAlerts = False End With
For Each objSheet In objActiveBook.Sheets For Each objPivotTable In objSheet.PivotTables With objActiveBook.Sheets.Add(, objSheet) With objPivotTable.PivotCache.CreatePivotTable(.Range("A1")) .AddDataField .PivotFields(1) End With .Range("B2").ShowDetail = True objActiveBook.Sheets(.Index - 1).Name = "SOURCE DATA FOR SHEET " & objSheet.Index objActiveBook.Sheets(.Index - 1).Tab.Color = 255 .Delete End With Next Next
With Application .ScreenUpdating = True .DisplayAlerts = True End With
End Sub
Data i mit regneark består af mere end 65.000 rækker, hvorfor programmet naturligvis stopper ( forventeligt )
Kan jeg istedet få denne udlæst som en ekstern csv-fil ( eller lignende ) som kan benyttes i en database ... hvordan ???
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du må bedst selv kunne se hvilke data det er du kopierer over i det andet sheet. Jeg kan ikke gennemskue din kode, det ser ud som om den opretter flere sheets. Men det er ligemeget - du skal bare finde det data du ønsker at skrive til filen - herefter er det bare copy-paste :)
Mon ikke det er f.eks. denne linje der angiver det data der skal kopieres (og dermed skrives til fil) [code] .AddDataField.PivotFields(1) [/code]
Det kan du ændre til
FilNavn = "C:\Data.txt" Filnummer= Freefile Open Filnavn For output As #Filnummer Print #FilNummer, .AddDataField.PivotFields(1) & ";" close filnavn
Du kan sætte open/close uden for løkken, så den ikek skal åbne og lukke filen en milliard gange ;-)
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.