Как дать динамическое имя файлу, который используется в качестве исходного файла в макросе? - PullRequest
0 голосов
/ 17 декабря 2018

Ежедневно я запускаю текстовый файл с помощью макроса Excel.Однако я хочу каждый день переименовывать этот файл в «аа».если я не укажу это имя правильно, макрос не будет работать.

Я упоминал здесь с оригинальным именем файла.Обратите внимание, что только эта дата файла изменяется изо дня в день.

Имя файла: 20017122018.ASCII.TXT

Данное имя меняется изо дня в день, как указано ниже.

20017122018.ASCII.TXT

20118122018.ASCII.TXT 

20219122018.ASCII.TXT 

20320122018.ASCII.TXT

Обновление

Это мой записанный код макроса.Как я могу это исправить?Я хочу заменить aa.txt стандартным именем файла.

With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\aa.txt", Destination _
    :=Range("$A$1"))
    .Name = "aa"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 437
    .TextFileStartRow = 1
    .TextFileParseType = xlFixedWidth
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = True
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(9, 2, 9, 1, 2, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 9, 1, 9, 1, _
    9)
    .TextFileFixedColumnWidths = Array(4, 16, 7, 6, 16, 8, 4, 12, 3, 12, 3, 25, 13, 3, 4, 13, 1 _
    , 1, 6, 7, 3)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
Cells.Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$O$828").AutoFilter Field:=6, Criteria1:="144"
Range("G54").Select

1 Ответ

0 голосов
/ 17 декабря 2018

Этот код будет отображать только файлы *.ASCII.txt в выбранной папке.
Выберите нужный файл, и он откроет его.

Это говорит о том, что он показывает файлы, которые находятся в той же папке, что и файл Excel:

vFile = GetFile(ThisWorkbook.Path)  

Это говорит о том, что он показывает файлы, которые находятся в расположении файлов по умолчанию:

vFile = GetFile()     

Затем вы ссылаетесь на текстовый файл, используя wrkBk.

Это вся процедура:

Sub Test()

    Dim vFile As Variant
    Dim wrkBk As Workbook

    vFile = GetFile()

    If vFile <> "" Then
        Set wrkBk = Workbooks.Open(vFile)
    End If

End Sub

Function GetFile(Optional startFolder As Variant = -1) As Variant
    Dim fle As FileDialog
    Dim vItem As Variant
    Set fle = Application.FileDialog(msoFileDialogFilePicker)
    With fle
        .Title = "Select a File"
        .AllowMultiSelect = False
        .Filters.Add "ASCII.TXT", "*.ASCII.txt", 1
        If startFolder = -1 Then
            .InitialFileName = Application.DefaultFilePath
        Else
            If Right(startFolder, 1) <> "\" Then
                .InitialFileName = startFolder & "\"
            Else
                .InitialFileName = startFolder
            End If
        End If
        If .Show <> -1 Then GoTo NextCode
        vItem = .SelectedItems(1)
    End With
NextCode:
    GetFile = vItem
    Set fle = Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...