このコードは、入力としてテキストファイルを受け取り、各行を文字列配列に格納し、各行をループして条件をチェックし、最終的に配列を埋めます。
この1次元配列を.range
Excelオブジェクトライブラリのメソッドを使用してExcel列に転送しようとすると、範囲のすべてのセルが配列の最初の値(つまり、array(0))で埋められます。
sr = openFileDialog1.FileName()
If (sr IsNot Nothing) Then
Dim alltextlines() As String = IO.File.ReadAllLines(sr)
Dim name As String
Dim isvalid As Boolean
Dim tempstr() As String
Dim count As Integer = 0
For Each myLine In alltextlines
ReDim Preserve tempstr(count)
If myLine.Contains(">") And myLine.Contains(" sds dsd") Then
isvalid = Integer.TryParse((Microsoft.VisualBasic.Mid(Microsoft.VisualBasic.LTrim(myLine), 3, 1)), 0)
If isvalid Then
name = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.LTrim(myLine), 5)
Else
name = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.LTrim(myLine), 7)
End If
tempstr(count) = name
count = count + 1
End If
Next
Dim message As String = String.Join("..", tempstr)
MsgBox(message)
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
'Start a new workbook in Excel.
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add
oSheet = oBook.Worksheets(1)
oSheet.Range("A1").Value = "SiteNames"
oSheet.Range("A1:B1").Font.Bold = True
oSheet.Range("A2").Resize(tempstr.Length).Value = tempstr
oSheet = Nothing
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
GC.Collect()
Else
MsgBox("TEXT FILE IS EMPTY", MsgBoxStyle.Critical, "Error")
End If
End If
End Sub