Hirdetés

Új hozzászólás Aktív témák

  • Pulsar
    veterán

    Hali!

    Ahhoz, hogy ezt megtehesd, az excel tábla útvonalából ki kell emelni a fájlnevet például. Az alábbi makró ezt teszi. (a fájl kiterjesztést törli) Aztán, hogy a kapott névvel új munkalapot hozol-e létre, vagy egy meglévőt átnevezel, az már rajtad áll.

    Private Sub CommandButton1_Click()

    Dim Excel_Filename As String
    Dim Point As String
    Dim BackSlash As String
    Dim BackSlashPos As Integer

    'értékadás
    Excel_Filename = "c:\a\b\abcdefg.xlsx"
    BackSlash = "\"
    Point = "."

    'található-e benne visszaper jel
    BackSlashPos = InStr(1, Excel_Filename, BackSlash, vbTextCompare)

    'jobbról balra megkeressük az első pontot(.), hisz addig tart a fájl kiterjesztése
    'majd kitöröljük
    For i = Len(Excel_Filename) To 1 Step -1
    c = Mid(Excel_Filename, i, 1)
    If c = Point Then
    Exit For
    End If
    Next
    Excel_Filename = Left(Excel_Filename, Len(Excel_Filename) - (Len(Excel_Filename) - i + 1))

    'ha korábban nem találtunk benne visszaper jelet, akkor az azt jelenti
    'hogy nem tartalmazott útvonalat, csak egy sima fájlnév, ez esetben nem kell
    'megkeresni az első visszaperjelet ismét jobbról balra. (azaz magát a fájl nevét)
    If BackSlashPos <> 0 Then
    For i = Len(Excel_Filename) To 1 Step -1
    c = Mid(Excel_Filename, i, 1)
    If c = BackSlash Then
    Exit For
    End If
    Next
    Excel_Filename = Mid(Excel_Filename, i + 1, (Len(Excel_Filename) - i + 1))
    End If
    MsgBox (Excel_Filename)

    End Sub

    Fire.

    hm... bár még nem nagyon értem, de kérdezek...
    és hogyna tudok erre hivatkozni később?

    Illetve az excel files nevet te adod meg itt: ???

    'értékadás
    Excel_Filename = "c:\a\b\abcdefg.xlsx"

    Mert nekem az nem jó...
    nekem arra van szükségem, hogy amikor lefuttatom a makrót akkor nézze meg mi a files neve, mint ez:

    Function FileOrFolderName(InputString As String, _
    ReturnFileName As Boolean) As String
    ' returns the foldername without the last pathseparator or the filename
    Dim i As Integer, FolderName As String, FileName As String
    i = 0
    While InStr(i + 1, InputString, Application.PathSeparator) > 0
    i = InStr(i + 1, InputString, Application.PathSeparator)
    Wend
    If i = 0 Then
    FolderName = CurDir
    Else
    FolderName = Left(InputString, i - 1)
    End If
    FileName = Right(InputString, Len(InputString) - i)
    If ReturnFileName Then
    FileOrFolderName = FileName
    Else
    FileOrFolderName = FolderName
    End If
    End Function

    Sub TestFileOrFolderName()
    MsgBox FileOrFolderName(ThisWorkbook.FullName, False), , _
    "This Workbook Foldername:"
    MsgBox FileOrFolderName(ThisWorkbook.FullName, True), , _
    "This Workbook Filename:"
    End Sub

    és tök jó is, csak nem tudom hogyan hivatkozzak a files névre a Windows("Book1").Activate Book1 helyett!

Új hozzászólás Aktív témák