PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBASpara om en xls fil till txtSpara om en xls fil till txt
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2018-11-15 08:54
 

 Hej är en nybörjare med macron och VBA och testade spela in ett macro men blev inte helt riktigt.

Jag vill alltså kunna spara om det öppnade xlm dokumentet till en tabbavgränsad txtfil i samma mapp som orginalfilen finns i, borde vara ganska simpelt tycker jag men ändå klarar jag inte av det själv ;)

Hoppas någon hinner hjälpa mig då det skulle spara mig många klick om dagen

 

 

Nytt inlägg
 2018-11-15 18:41
 

Lite överkommenterat: Stega igenom koden med F8-knappen och håll musen över variabelnamnen för att se hur texterna ändras.

************************************************

Sub test()

' deklarera variablerna. inte nödvändigt men helt nödvändigt :-)

Dim sSökväg As String

Dim sFilnamn As String

 

'Hämta sökvägen för den aktiva boken

sSökväg = ThisWorkbook.Path

'Hämta filnamnet

sFilnamn = ThisWorkbook.Name

'tag bort filändelsen (hitta sista punkten och hämta allt vänster om den)

sFilnamn = Left(sFilnamn, InStrRev(sFilnamn, ".") - 1)

 

'Slå ihop sökväg och filnamn

sFilnamn = sSökväg & "\" & sFilnamn

 

'spara med valt filnamn (filändelsen txt kommer automatiskt)

    ThisWorkbook.SaveAs Filename:=sFilnamn, FileFormat:=xlText, CreateBackup:=False

        

End Sub

************************************************

det kan verka onödigt krångligt att köra:

sFilnamn = Left(sFilnamn, InStrRev(sFilnamn, ".") - 1)

Men du skriver olika filändelser i din fråga och nyare excel har xlsm som standard för makroböcker så det är lika bra att krångla till det . 

Det här är koden funkar lika bra om du bara vill ersätta xlm med txt

sFilnamn = Replace(expression:=sFilnamn, Find:=".xlm", Replace:=".txt")

 

Hemläxa för din personliga utveckling: Googla gärna lite på skillnader mellan 

  • ThisWorkbook.
  • ActiveWorkbook.
  • Me.

innan du använder min kod. De kan peka på samma arbetbok eller helt olika beroende på hur de används. Det kan vara viktigt att hålla reda på när du använder kod från nätet.

Och använd F1 knappen flitigt i koden om du blir osäker. Excel VBA har bra hjälp

 

Nytt inlägg
 2018-11-16 08:59
 
 Ändrad av Christian  på 2018-11-16 10:48:52
Hej hej

Denna lilla kod sparar en kopia av arbetsboken som textfil och stänger den sedan. Så slipper du eventuellt bekymmer med att behöva öppna originalet igen. Säker på att filändelsen inte är xlsm?, var ganska längesen som xlm användes :).


Sub SaveAstxt()

Dim fn As String: fn = Replace(ThisWorkbook.FullName, "xlm", "txt")

ThisWorkbook.Sheets.Copy
With ActiveWorkbook
.SaveAs fn, xlText
.Close savechanges:=False
End With

End Sub
Nytt inlägg
 2018-11-16 10:09
 

 Snyggt!

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBASpara om en xls fil till txtSpara om en xls fil till txt

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter