Я чрезвычайно новичок в 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.
Как создать макрос импорта, который будет импортировать правильный файл на правильный лист?