Avatar billede mdm Nybegynder
17. april 2002 - 14:08 Der er 13 kommentarer og
2 løsninger

Eksporterer data fra celler i excel til en tekstfil med VBA

Jeg har brug for at kunne eksporterer celleværdier i området ae11 til ae500 såfremt de indeholder en værdi.
Det skal være med VBA.

Avatar billede janvogt Praktikant
17. april 2002 - 14:12 #1
Hvordan eksportere?
Avatar billede janvogt Praktikant
17. april 2002 - 14:20 #2
Mener du en bestemt værdi eller bare en eller anden værdi?
Skal det være eksport som kommasepareret fil?
Avatar billede mdm Nybegynder
17. april 2002 - 14:21 #3
Gemme indholdet i cellerne i en tekstfil.
dvs. hvis ae11 = hej
og ae14 = med
og ae18 = dig
og resten af cellerne i området er tomme skal jeg have en tekstfil med indholdet:
hej
med
dig
Avatar billede janvogt Praktikant
17. april 2002 - 14:40 #4
Når man eksporterer til en tekstfil vil den normalt se sådan ud:
hej;;;med;;;;dig

Men du kan slette blanke rækker først ved hjælpe af en VBA-rutine eller ved at markere kolonnen, trykke F5, special og vælge "blanke" som du derefter slettet.

Herefter skal du bruge en VBA-funktion til at eksportere området.
Avatar billede mdm Nybegynder
17. april 2002 - 14:52 #5
Ok dvs. de blanke celler slettes således:

    Columns("AE:AE").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Range("AE1").Select

Hvordan får jeg det så ud i en tekstfil. Jeg kan selvfølgelig kopierer det over i en ny xls fil og gemme denne som tekst. Men er der ikke en smartere måde ?
Avatar billede janvogt Praktikant
17. april 2002 - 14:58 #6
Jo, jeg har en eksportfil liggende som kan klare det.

Men først skal du lige have udvidet din kode til at markere det område som skal eksporteres:

    Columns("AE:AE").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Range("AE1").Select
    Selection.CurrentRegion.Select
Avatar billede janvogt Praktikant
17. april 2002 - 15:03 #7
Jeg kan sende dig eksportfilen.
Jeg har lagt en detaljeret forklaring i filen, så den skulle være lige til at gå til.

janvogt@esenet.dk
Avatar billede mdm Nybegynder
17. april 2002 - 15:09 #8
Det vil være fint

mld@vip.cybercity.dk
Avatar billede janvogt Praktikant
17. april 2002 - 15:20 #9
Sendt ....
Avatar billede bak Seniormester
17. april 2002 - 16:13 #10
Her behøver du ikke cleare noget. Bare ændre tekstfilens navn.

Sub Macro2()
    Dim matrix As Range
    Range("AE1:AE500").Select
    Set matrix = Selection.SpecialCells(xlCellTypeConstants, 23)
    Open "c:\text.txt" For Output As #1
    For Each x In matrix.Cells
    Print #1, x
    Next
    Close #1
End Sub
Avatar billede janvogt Praktikant
17. april 2002 - 16:26 #11
Genialt! Hvad betyder "23"? None-blanks eller sådan noget lignende?
Avatar billede bak Seniormester
17. april 2002 - 16:50 #12
Det betyder konstanter. (man får ikke celler med formler eller blanke med)
Avatar billede mdm Nybegynder
17. april 2002 - 16:52 #13
Pt. har jeg ikke adgang til min mail (det får jeg i aften).

Men bak's ser perfekt ud dog virker den ikke på formler i hvert fald ikke denne: =SAMMENKÆDNING(U11;V11;W11;X11;Y11;Z11;AA11;AB11;AC11;AD11)
her printer den kun SAMMENKÆDNING i filen.
Kan man få den til at printe værdien, ellers kan jeg selvfølgelig bruge en work-around med at kopiere formlerne og sætte dem ind et andet sted som værdier.
Avatar billede bak Seniormester
17. april 2002 - 17:04 #14
Ok, så forbedrer jeg den da bare...
Sub Macro3()
    Dim matrix As Range
    Set matrix = Range("AE11:AE500")
    Open "c:\text.txt" For Output As #1
    For Each x In matrix.Cells
    If Not IsEmpty(x) Then Print #1, x.Value
    Next
    Close #1
End Sub
Avatar billede mdm Nybegynder
17. april 2002 - 18:32 #15
Har delt pointene 20/40, da begge kunne bruges men bak's svar passede bedst til mit ønske.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester