У меня есть настройки листа со следующим VBA:
Sub PrintPDF()
Application.DisplayAlerts = False
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\<insert_username>\Desktop\macro\Book1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False _
Application.Quit
End Sub
(который в основном открывает, печатает PDF-файл и закрывает Excel)
Тогда у меня есть этов рабочей книге:
Private Sub Workbook_Open()
Run "PrintPDF"
End Sub
(который запускает макрос PrintPDF «под нагрузкой» - то есть при первом открытии файла Excel).
ВОПРОС:
Итак, что мне не хватает сейчас, чтобы завершить эту задачу, так это хороший чистый код для импорта файла с разделителями «под нагрузкой» и сопоставления его с фиксированной точкой на одном листе.
Образец данных (сстрока заголовка):
ID<TAB>Name<TAB>Location
1<TAB>John<TAB>US
2<TAB>Mike<TAB>CN
3<TAB>Tom<TAB>CA
Образец строк Excel (после вставки «при загрузке» и сопоставления с ячейками):
<A1>null<B1>null<C1>null<D1>null
<A2>null<B2>ID<C2>Name<D2>Location
<A3>null<B3>1<C3>John<D3>US
<A4>null<B4>2<C4>Mike<D4>CN
<A5>null<B5>3<C5>Tom<D5>CA
(смещение сопоставления данных, поскольку я хотел бы сделатьЯ уверен, что я могу отобразить импортированные данные в любое место файла Excel, если количество строк и столбцов совпадает на обоих концах, оба конца - это файл Excel и файл источника данных с разделителями;-1.)
Если у вас есть вопросы, дайте мне знать.Целевой системой является Windows 7 (Office 2010) или Mac 10.5 (Office 2011) - приведенный выше код предназначен для Windows, но единственное отличие, которое я считаю, - это код имени файла: «C:\Users\<insert_username>\Desktop\macro\Book1.pdf
»
ОБНОВЛЕНИЕ:
Вот код, который у меня есть, ничего плохого в этом:
Sub ImportCSV()
'
' ImportCSV Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\<insert_username>\Desktop\macro\sample_pipeline_data.txt", Destination:= _
Range("$B$2"))
.Name = "sample_pipeline_data"
.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 = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub