如何使用VBA从每行读取位置?

如何使用VBA从每行读取位置?,vba,excel,Vba,Excel,如何从txt文件中读取位置值?就像我在文本文件中有多行数据的文本文件一样 10234511234preview compostion 12345 2034512344566345644444 2344455555555 2100000034567 现在我想从第一行读取位置7到10,并将我的常量值和位置11到18再次与常量值匹配。 第二排也要用同样的方法 因此,起始两位数是每行的键值10,20 请帮助我如何为上述场景编写VBA代码?解决您的问题有多种方法,我使用下面的一种方法实现

如何从txt文件中读取位置值?就像我在文本文件中有多行数据的文本文件一样

10234511234preview compostion 12345  
2034512344566345644444  
2344455555555  
2100000034567  
现在我想从第一行读取位置
7到10
,并将我的常量值和位置
11到18
再次与常量值匹配。 第二排也要用同样的方法

因此,起始两位数是每行的键值10,20


请帮助我如何为上述场景编写VBA代码?

解决您的问题有多种方法,我使用下面的一种方法实现了使用VBA的自动化

我建议您使用两个工作表(例如同一工作簿的输入和输出),其中输入工作表应包含文本文件中的数据,而输出工作表将提供从特定位置开始的数据(例如10,20)

在输入表上添加一个按钮,并在其单击事件上写下以下代码(从文本文件中粘贴C7单元格中的数据):

首先使用以下代码获取总行数:

For i = 1 To usedRowCount

'Get the first row in variable strRecord

strRecord = Worksheets("Input").Cells(i, "C").Value        
'Copy substring from 10th posotion, 6 characters and copy it to sheet Output position A1  
Worksheets("Output").Cells(i, "A").Value = Mid(CStr(strRecord), 10, 6)    
'Copy substring from 20th posotion, 8 characters and copy it to sheet Output position B1  
Worksheets("Output").Cells(i, "B").Value = Mid(CStr(strRecord), 20, 8)    
'Copy substring from 30th posotion, 4 characters and copy it to sheet Output position C1  
Worksheets("Output").Cells(i, "C").Value = Mid(CStr(strRecord), 30, 4)    
next i
usedRowCount=工作表(“输入”).UsedRange.Rows.Count

然后使用下面的代码从特定位置复制字符串,并使用下面的代码将其粘贴到输出表上:

For i = 1 To usedRowCount

'Get the first row in variable strRecord

strRecord = Worksheets("Input").Cells(i, "C").Value        
'Copy substring from 10th posotion, 6 characters and copy it to sheet Output position A1  
Worksheets("Output").Cells(i, "A").Value = Mid(CStr(strRecord), 10, 6)    
'Copy substring from 20th posotion, 8 characters and copy it to sheet Output position B1  
Worksheets("Output").Cells(i, "B").Value = Mid(CStr(strRecord), 20, 8)    
'Copy substring from 30th posotion, 4 characters and copy it to sheet Output position C1  
Worksheets("Output").Cells(i, "C").Value = Mid(CStr(strRecord), 30, 4)    
next i
我试着用Mid(strLine,10,5)从strLine获取位置10处的5个字符