求教基础有关问题,麻烦大大们指教一上

求教基础问题,麻烦大大们指教一下
同学有两个文件,需要将a.text中的几万行文本中每行的几个字符更新,更新值要从b.xls中对应项目来获取,我用VB 2012 Express写了个程序来实现,但是程序超级慢,老是会无响应(能一直运行并更新),一秒估计才能更新一两行...
求各位大大指教我怎么优化...告诉我到底哪里拖慢程序。

是不是不用replace,而更新完所有数组单元行,再合并数组会快很多?


Imports System.Data.OleDb
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
    End Sub

    Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
        TextBox1.Text = OpenFileDialog1.FileName
        TextBox3.Text = IO.File.ReadAllText(TextBox1.Text)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        OpenFileDialog2.ShowDialog()
    End Sub

    Private Sub OpenFileDialog2_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog2.FileOk
        TextBox2.Text = OpenFileDialog2.FileName
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim Splitline() As String
        Dim Oldtext As String
        Dim Newtext As String
        Dim ifv As String
        Dim if5 As String
        Dim iftitle As String
        Dim ttl As Integer
        Dim nocount As Integer = 0
        Dim updatecount As Integer = 0
        Dim objConn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + TextBox2.Text + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'")
        objConn.Open()
        Splitline = Split(TextBox3.Text, vbCrLf)
        For ttl = 0 To Splitline.Length - 1
            iftitle = Split(Splitline(ttl), vbTab)(1)
            Oldtext = Split(Splitline(ttl), vbTab)(3)
            'MsgBox(iftitle)
            Dim objCmdSelect As New OleDbCommand("SELECT * FROM [JCR2012$] where [Abbreviated Journal Title (linked to journal information)]= '" + iftitle + "'", objConn)
            Dim myrs As OleDbDataReader = objCmdSelect.ExecuteReader()