将Excel电子表格中的TXT文件导入特定单元格
我有一个问题,我想将一个TXT文件导入Excel,但需要将文件的一部分始终粘贴到某个单元格中,因为所有其他代码都基于该原始单元格位置。我想修改我的VBA代码,以便能够考虑这种灵活性 下图展示了理想场景:以黄色突出显示的行位于单元格A47内。所有TXT文件的格式相似,因此该行应始终粘贴在此标题内。随后,下表将被放置在正确的位置,以供后续代码使用 但是,大多数情况下,TXT文件的大小会不同,因此该行不会在A47中。下面是一个例子: 以米色突出显示的部分是根据文本文件大小而变化的部分,因此是问题的根源,因为它会向下推送TXT文件的其余部分。但是,米色部分并不重要,因此,如果能够以某种方式将其删除/缩短到正确的大小,并将下面的文本移到单元格A47,这将是本文的目标。此代码需要适用于任何大小 以下是我必须导入txt文件的代码:将Excel电子表格中的TXT文件导入特定单元格,excel,vba,Excel,Vba,我有一个问题,我想将一个TXT文件导入Excel,但需要将文件的一部分始终粘贴到某个单元格中,因为所有其他代码都基于该原始单元格位置。我想修改我的VBA代码,以便能够考虑这种灵活性 下图展示了理想场景:以黄色突出显示的行位于单元格A47内。所有TXT文件的格式相似,因此该行应始终粘贴在此标题内。随后,下表将被放置在正确的位置,以供后续代码使用 但是,大多数情况下,TXT文件的大小会不同,因此该行不会在A47中。下面是一个例子: 以米色突出显示的部分是根据文本文件大小而变化的部分,因此是问题的
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
Sub-Get_Data_From_File()
'代码,提示用户选择文件(例如.TXT)并将其粘贴到Excel工作表中
Dim FiletoOpen作为变体
将OpenBook设置为工作簿
'防止弹出有关剪贴板上信息过多以及屏幕更新的警告对话框
Application.DisplayAlerts=False
Application.ScreenUpdating=False
'为用户提示并打开文件
FiletoOpen=Application.GetOpenFilename(标题:=“浏览文件并导入”)
如果FiletoOpen为False,则
设置OpenBook=Application.Workbooks.Open(FiletoOpen)
OpenBook.Sheets(1).范围(“A1:AA1000”).副本
ThisWorkbook.Worksheets(“ImportText”).Range(“A5”).Paste特殊XLPaste值
打开书本,关闭错误
如果结束
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头
提前谢谢你 试试看
Sub Get_Data_From_File2()
'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
Dim Target As Range, rngDB As Range
Dim Ws As Worksheet
Dim Wb As Workbook
Dim r As Integer
Set Wb = ThisWorkbook
Set Ws = Wb.Sheets("ImportTXT")
'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
Set Target = Ws.Range("a42")
Set rngDB = Target.CurrentRegion
r = rngDB.Rows.Count
If r > 2 Then
Set rngDB = Target(3).Resize(r - 2)
rngDB.EntireRow.Delete
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub-Get_Data_From_File2()
'代码,提示用户选择文件(例如.TXT)并将其粘贴到Excel工作表中
Dim FiletoOpen作为变体
将OpenBook设置为工作簿
变暗目标作为范围,rngDB作为范围
将Ws设置为工作表
将Wb设置为工作簿
作为整数的Dim r
设置Wb=ThisWorkbook
设置Ws=Wb.Sheets(“导入文本”)
'防止弹出有关剪贴板上信息过多以及屏幕更新的警告对话框
Application.DisplayAlerts=False
Application.ScreenUpdating=False
'为用户提示并打开文件
FiletoOpen=Application.GetOpenFilename(标题:=“浏览文件并导入”)
如果FiletoOpen为False,则
设置OpenBook=Application.Workbooks.Open(FiletoOpen)
OpenBook.Sheets(1).范围(“A1:AA1000”).副本
ThisWorkbook.Worksheets(“ImportText”).Range(“A5”).Paste特殊XLPaste值
打开书本,关闭错误
如果结束
设定目标=Ws.范围(“a42”)
设置rngDB=Target.CurrentRegion
r=rngDB.Rows.Count
如果r>2,则
设置rngDB=Target(3)。调整大小(r-2)
rngDB.EntireRow.Delete
如果结束
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头