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

时间:2012-10-26 07:10:25

标签: vba excel-vba excel

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

10234511234preview compostion 12345  
2034512344566345644444  
2344455555555  
2100000034567  

现在我想从第一行读取位置7 to 10并再次使用常量值匹配我的常量值和位置11 to 18。 同样的方法必须为第二行做到这一点。

因此,开始两位数是每行的关键值10,20。

请帮助我如何为上述情况执行VBA代码?

1 个答案:

答案 0 :(得分:0)

您可以通过各种方式解决问题,我使用VBA进行自动化操作。

我建议你使用两张纸(比如输入和输出相同的工作簿),其中输入表应该包含来自文本文件的数据,输出表将为您提供从特定位置开始的数据(例如10,20)。

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

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

usedRowCount = Worksheets("Input").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