У меня проблема, когда я хотел бы импортировать файл TXT в Excel, но мне нужно, чтобы один раздел файла всегда вставлялся в определенную ячейку, поскольку весь другой код основан на этой исходной ячейке. Я хотел бы изменить свой код VBA, чтобы учесть эту гибкость.
Ниже приведен рисунок, демонстрирующий идеальный сценарий: строка, выделенная желтым цветом, расположена в ячейке A47. Все файлы TXT будут иметь аналогичный формат, поэтому эту строку всегда следует вставлять в этот заголовок. Следующая таблица будет помещена в правильное место для последующего кода.
However, most of the time the TXT file will be of a different size, and thus that row will not be in A47. Below is an example of this:
другой файл txt
Часть, выделенная бежевым цветом, - это та часть, которая изменяется в зависимости от размера текстового файла и, таким образом, является источником проблемы, поскольку выталкивает остальную часть файла TXT вниз. Тем не менее, этот бежевый раздел не важен, поэтому, если бы его можно было каким-то образом удалить / сократить до нужного размера, а текст ниже сместился бы в ячейку A47, это было бы целью здесь. Этот код должен работать для любого размера.
Вот код, который мне нужно импортировать txt-файл:
Sub Get_Data_From_File()
'Code to prompt the user to select a file (e.g. .TXT) and paste it in the Excel Worksheet
Dim FiletoOpen As Variant
Dim OpenBook As Workbook
'In place to prevent the popup warning dialog box about having too much information on the clipboard as well as screen updating
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Prompting and Opening file for user
FiletoOpen = Application.GetOpenFilename(Title:="Browse for your File & Import")
If FiletoOpen <> False Then
Set OpenBook = Application.Workbooks.Open(FiletoOpen)
OpenBook.Sheets(1).Range("A1:AA1000").Copy
ThisWorkbook.Worksheets("ImportTXT").Range("A5").PasteSpecial xlPasteValues
OpenBook.Close False
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Заранее спасибо!