Итак, я работаю с файлами CSV, и мне нужно открыть excel, перейдите в Data -> Из текста и отформатируйте определенные столбцы определенным образом. Я записал макрос, который делает это, но он всегда открывает файл, который я использовал при записи макроса. Как изменить макрос, чтобы он открывал диалоговое окно и позволял мне выбирать файл каждый раз? Я нашел этот кусок кода в Интернете, но я не знаю, как его интегрировать с моим записанным макросом в VBA.Excel изменить макрос для «данных из текста», чтобы открыть диалоговое окно?
Dim MyFile As String
MyFile = Application.GetOpenFilename()
Теперь, как и где и что я заменю в приведенном ниже макросе (код, для которого создается с помощью кнопки «Запись макроса» в Excel)?
Sub random_name()
'
' random_name Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;MyFile = Application.GetOpenFilename()" _
, Destination:=Range("$A$1"))
.Name = "filename"
.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 = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Спасибо!
Спасибо! Работает как шарм. Не могли бы вы объяснить строку 15 «.Name =« filename »« «filename» был помещен мной там, чтобы подвергнуть цензуре мое фактическое используемое имя файла. Когда я впервые записал макрос, он использовался как «.Name =» <фактическое имя моего файла> » Так что на самом деле это« имя файла », которое есть прямо сейчас, абсолютно ничего не вызывает, но оно не вызывает никаких проблем. что? Может ли это вызвать какие-либо проблемы в некоторых ситуациях? Спасибо! –
Привет, насколько я вижу в документации [link] (https://msdn.microsoft.com/en-us/library/office/ff820914. aspx) Имя может быть любым, что вы хотите, чтобы оно было :), чтобы вы могли заменить какой-то конкретный фрагмент кода. Если вы перейдете в Excel Data -> Connections, вы увидите, что оно находится под вашим именем. Вы можете использовать это имя ссылается на него в VBA: ActiveSheet.QueryTables ("filename"). – Tackgnol