Oprettet man. d. 07. januar 2013 kl. 13:33:16

folj
folj (15.905 point. Point ude: 0)


Short Path til en fil

Kan jeg med hjælp fra VBA gå ind og finde den aktuelle "ShortPath" til den fil jeg arbejder med?

Jeg forklarer lige hvad jeg mener med "ShortPath":
Bag de lange filnavne som windows kan håndtere, ligger der også et kort filnavn/sti som mange vil kunne huske fra DOS-styresystemet, eksempelvis "C\DOKUME~1\IM1FER~1\FERMEN~1\ALLEPL~1\RVARER~1\VITAMI~2.XLS"

Jeg har brug for at trække denne korte sti ind i et af mine parametre i VBA-koden. Jeg bruger normalt
ThisWorkbook.Path
til at trække den lange sti med,
men findes der noget tilsvarende hvor man kan tilgå den korte udgave?

Skrevet man. d. 07. januar 2013 kl. 19:33:16| #1


Skrevet tir. d. 08. januar 2013 kl. 10:34:38| #2

folj
folj (15.905 point)
Er der ikke en der kan hjælpe med funktionskaldet også, for jeg kan ikke få det til at spille... returnerer fejlen "User-defined type not defined"

mit funktionskald:

-----kode-----
Sub EnterShortPath()

Dim LongPath As String
LongPath = ThisWorkbook.FullName

Path = GetShortDosPath(LongPath)

MsgBox Path

End Sub
-----/kode-----

Skrevet tir. d. 08. januar 2013 kl. 11:15:55| #3

folj
folj (15.905 point)
Jeg skal måske lige præcisere at min funktion er som beskrevet under RogerWilco's link:

------kode-----
Function GetShortDosPath(sPath As String)
   
    Dim fso As Scripting.FileSystemObject
    Dim fsoFile As Scripting.file
   
    Set fso = New FileSystemObject
    Set fsoFile = fso.GetFile(sPath)
   
    GetShortDosPath = fsoFile.ShortPath
   
End Function
------/kode-----

Skrevet tir. d. 08. januar 2013 kl. 11:26:30| #4

folj
folj (15.905 point)
Kan se i min VBA-debugger at linien
Dim fso As Scripting.FileSystemObject
er markeret med blåt.

kan det ikke være den linie der fejler?
Når jeg skriver i hånden "Dim fso As " så vises der alle de muligheder man har, og der findes der ikke noget der hedder scripting...

Hvad gør jeg for at komme videre?

Skrevet tir. d. 08. januar 2013 kl. 12:23:47| #5

RogerWilco
RogerWilco (9.085 point)
Fra artiklen:
Don't forget to set a reference to Microsoft Scripting Library (Tools - References)

Nævnte menu er i VBA-editor, og jeg mener komponenten faktisk hedder: Microsoft Scripting Runtime.

Skrevet tir. d. 08. januar 2013 kl. 13:04:30| #6

folj
folj (15.905 point)
@RogerWilco. Ja jeg har set at det står, og det kan også godt være at det er problemet.

Jeg har bare ikke kunnet finde noget sted hvor dette kan tilvælges i den nye version af Excel (version 14.0), som vi benytter her i bixen.

Nogen der ved om det er standard i vers 14 eller skal det tilvælges ?

Skrevet tir. d. 08. januar 2013 kl. 17:30:47| #7

RogerWilco
RogerWilco (9.085 point)
I både Excel 2003 og 2007 (US version) hedder menuen det samme; Åbn VBA-editor og klik på menuen Tools og vælg References. I listen der kommer frem, sættes flueben i Microsoft Scripting Runtime. Jeg ved ikke, hvad nævnte menu hedder i den danske version, og om det er ændret i 2010.

Skrevet tor. d. 10. januar 2013 kl. 09:28:47| #8

folj
folj (15.905 point)
Menuerne i Excel 2010 (ver 14) er opbygget helt anderledes end de tidligere versioner.

Jeg måtte google lidt og fandt på http://www.mrexcel.com/forum/excel-questions/668134-excel-visual-basic-applications-microsoft-scripting-runtime-not-excel-2010-a.html at det skulle findes i VBE (Visual BasicEditorens) menu Tools > References.

Jeg lagde dette som et svar, men synes at du RogerWilco skal have del i points for delagtighed i at finde frem til svaret, så jeg vil bede dig om også at smide et svar.

Skrevet tor. d. 10. januar 2013 kl. 17:49:42| #9

RogerWilco
RogerWilco (9.085 point)
Jeg skrev da også (to gange, faktisk), at det var i VBA-editoren.  (c:

Skrevet fre. d. 11. januar 2013 kl. 12:19:18| #10

folj
folj (15.905 point)
Jeg kan lige tilføje, at efter jeg fik sat omtalte flueben i VBE (Visual BasicEditorens) menu Tools > References, så virker det hele.
Tak for indfalten til RogerWilco...

Skrevet fre. d. 11. januar 2013 kl. 12:19:58| #11

folj
folj (15.905 point)
indfalten = indsatsen ;)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   



Seneste spørgsmål

Indsæt en graf i en userform i excel

Oprettet den 5. februar 2016 kl. 17.38
MadsP007 giver 30 point for svar | Giv et svar »

#N/A - !!?#""€%

Oprettet den 5. februar 2016 kl. 09.26
TUFexcel giver 200 point for svar | Giv et svar »

Hjælp til formel.med dato

Oprettet den 4. februar 2016 kl. 19.36
petert giver 60 point for svar | Giv et svar »

Seneste guides

Luk en tråd
Defraggler og din SSD.
Must-know genvejstaster til WordPress
Slettet





Computerworld

Teaser billede

Apple tilbagekalder opladere - kan give dig stød: Se om din egen oplader er berørt

Opladere til Mac, iPhone og iPad, der er solgt fra 2003 til 2015, kan give brugerne stød. Det får nu Apple til at love kunderne en gratis ny oplader.

CIO

Teaser billede

Her er it-chefernes drømmehold: Det er denne type it-folk vi vil ansætte nu

It-arkitekter og projektledere står højest på CIO'ens ønskeliste, når der skal rekrutteres. Her er listen over de mest efterspurgte medarbejderkompetencer lige nu.

Comon

Teaser billede

Xbox ramt af syv timer langt nedbrud: Så fik kendt musiker nok

Frustrationer over gårsdagens lange nedbrud på Xbox-netværket har fået gangsterrapperen Snoop Dogg til at gå amok over for Microsoft og selskabets stifter Bill Gates. Se videoen her.

Channelworld

Teaser billede

It-firma rykker til Københavns centrum: De dygtigste it-folk gider ikke arbejde i Farum

En afstand på 25 kilometer fra Københavns Rådhusplads er for meget, hvis man vil have fat i de dygtigste it-folk, lyder det fra lille it-firma, som nu flytter fra Farum.

White paper

Teaser billede

5 gode pointer omkring Cloud ROI

Dette white paper fra CIO Magazine and VeeamUP giver dig et nyt perspektiv, som rækker ud over standarderne for cloud CAPEX og OPEX beregninger, som du måske allerede benytter.



Udgiver · © 2016 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger