Как импортировать разные файлы .txt в каждую рабочую книгу в каждом цикле? - PullRequest
0 голосов
/ 29 января 2019

Я чрезвычайно новичок в VBA и, возможно, упускаю что-то простое, но я потерян.

Я извлекаю данные из SAP, вводя 5 различных чисел (плоские MSN) в таблицу Excel и затем запускаю макрос. Как его настроить

Макрос выбирает первую ячейку MSN, использует эту ссылку на ячейку для извлечения правильных данных, сохраняет в виде текстового файла, а затем создает новую рабочую книгу для сохранения этих данных инаконец, импортирует текстовый файл.

Я хочу создать цикл, чтобы он создавал 5 разных книг, по одной для каждого значения MSN.Проблема, с которой я сталкиваюсь, заключается в правильной ссылке на расположение и имя файла .txt, так как он меняет каждый цикл.

Текст сохраняется как: USA_Clusters_MSN_STN

"USA_Clusters_" & ActiveCell.Value & "_" & ActiveCell.Offset (0, -1) .Value & ".txt"

If Workbooks("ClusterSheet.xlsm").Sheets("Start").Range("B2").Value = ActiveCell.Value Then

Set Newbook = Workbooks.Add
With Newbook
    .Title = "MSN"
    .Subject = "MSN"
End With

Workbooks("ClusterSheet.xlsm").Activate
Sheets("Start").Select
Range("B2").Select

With Newbook
.SaveAs Filename:="USA_Clusters_" & ActiveCell.Value & "_" & ActiveCell.Offset(0, -1).Value & ".xls"
End With
 ElseIf Workbooks("ClusterSheet.xlsm").Sheets("Start").Range("B3").Value = ActiveCell.Value Then

Set Newbook2 = Workbooks.Add
With Newbook2
    .Title = "MSN"
    .Subject = "MSN"
End With

Workbooks("ClusterSheet.xlsm").Activate
Sheets("Start").Select
Range("B3").Select

With Newbook2
.SaveAs Filename:="USA_Clusters_" & ActiveCell.Value & "_" & ActiveCell.Offset(0, -1).Value & ".xls"
End With

Так я создаю новую книгу, ссылаясь на выбранную ячейку с начала

With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;C:\Users\chplau04\Documents\Clusters\Clusters Week of Jan-21\USA_Clusters_8857_42.txt" _
    , Destination:=Range("$A$1"))
    .Name = "USA_Clusters_8857_42"
    .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 = 8
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileOtherDelimiter = "|"
    .TextFileColumnDataTypes = Array(1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False

Когда я иду на импорт, мне нужно найти местоположение и имя файла .txt.

Как создать макрос импорта, который будет импортировать правильный файл на правильный лист?

...