Я знаю, что этот пост будет казаться очень похожим на многие другие сообщения тем, кто его понимает. Я изучил C++ и C#, как достаточно хорошо, чтобы выполнить небольшую работу, и я просто не могу понять VBA достаточно хорошо, чтобы этот макрос произошел.Импорт данных из текстового файла в главный файл (изменение целевых каталогов) - Excel
У меня осталось менее 100 файлов, которые необходимо импортировать в главный файл. Я не могу изменить исходные файлы, но мастер-файл должен выбрать только столбцы.
Этот макрос работает почти идеально. Мне просто нужно выбрать новые пути к файлам для каждого экземпляра используемого макроса. Я нашел много постов, которые, кажется, использовать что-то вроде этого:
для того, чтобы сделать первый FilePath в переменную, а затем передать его в команду ActiveSheet.QueryTables.Add. Я мог бы просто что-то упустить, но между всеми примерами, которые я просто не понимаю, есть много переменных. Похоже, что страница msdn для vba намного менее интуитивна, чем для C#. Либо это, либо я просто не могу понять, что они не взяли необходимые мне babystep.
Использование макроса я сделал большую часть кода ниже. Около часа работы позволило мне заменить жестко закодированную ячейку активной ячейкой.
Sub InputDataFromTextFile()
'
' InputDataFromTextFile Macro
'
' Keyboard Shortcut: Ctrl+t
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;E:\Dropbox\College 2016-2017\Research\Buffered Solutions\pH10\With PDADMAC\30.CSV" _
, Destination:=ActiveCell)
.Name = "30"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(9, 1, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Я буду признателен за любую помощь, которая может быть предоставлена. Большое вам спасибо за ваше время.
Пример, который вы цитируете, кажется довольно простым. Если вы этого не сделали, вы также должны прочитать статью MSDN в [Метод Application.GetOpenFilename] (https://msdn.microsoft.com/en-us/library/office/ff834966.aspx). Напишите его как отдельный макрос и поиграйте с ним, чтобы увидеть, как он работает. Какую конкретную проблему вы сталкиваетесь с этим. –
Код, на который ссылаются шины, чтобы выбрать открытый стол, когда я его использую. Мне это действительно не нужно, так как мой код, написанный макромакером, просто открывает файл цели. Мне просто нужно сделать так, чтобы цель была выбрана пользователем, а не жестко запрограммирована. Проблема, с которой я сталкиваюсь, заключается в том, что переменная, которую он использует для перенаправления цели на выбранную «FileName», записывается во множество разделов кода, которые я не могу определить, как просто выйти из того, что мне нужно. Я пробовал уже около часа и большую часть прошлой ночи. – hotmaildotcom1
Решен ли этот вопрос? Заметьте: вы можете ответить на свой вопрос. Кроме того, действительно ли вы хотите, чтобы диалоговое окно выбора файлов для каждого из менее чем 100 файлов? Рассмотрим цикл с помощью каталога, в котором пользователь выбирает палитру только один раз. – Parfait