2017-02-14 84 views
1

我有一段代码可以读取记事本文件的前2个字符。下面是代码:Excel VBA - 读取第n个字符后的记事本文件

Public Sub extractInt() 

    Dim sText As String 

    Open "C:\ProgramData\regid.512-06.com.system.microsoft\regid.512-06.com.system.microsoft.12606768.dat" For Input As #1 

    sText = Input$(2, 1) 

    Close #1 

    Worksheets("ED").Range("C01").Value = sText 

End Sub 

它运作良好,但现在我想读第6个字符后。

例如,如果在记事本文件中的字符串是:

"abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 

我想读"hijkl"

希望你们能给点帮助。

回答

2

只是改变Input$的参数和使用Right

Input$(Number_of_Chars_To_Return, [#]NumFile)
Right(String,Number_of_Chars_From_the_Right)

Public Sub extractInt() 

    Dim sText As String 

    Open "C:\ProgramData\regid.512-06.com.system.microsoft\regid.512-06.com.system.microsoft.12606768.dat" For Input As #1 

    sText = Right(Input$(11, #1), 5) 

    Close #1 

    Worksheets("ED").Range("C01").Value = sText 

End Sub 
+1

这是伟大的。谢谢 – Jeeva

2

您可以使用Mid函数来处理这个问题,通过先读字符串文本文件里面sText变量。

之后,使用Mid函数:

sText = Mid(sText, 7, Len(sText) - 6) 

Mid功能说明:MSDN

代码

Public Sub extractInt() 

    Dim sText As String 

    Open "C:\ProgramData\regid.512-06.com.system.microsoft\regid.512-06.com.system.microsoft.12606768.dat" For Input As #1 
    Input #1, sText 
    sText = Mid(sText, 7, Len(sText) - 6) 

    Close #1 
    Worksheets("ED").Range("C01").Value = sText 
End Sub 
+0

hi shai rado。它正在工作,但不是预期的结果。下面的答案按照预期给出了答案。谢谢(你的)信息。 – Jeeva

相关问题