|
文本文档分隔符为“|”
大概有5万多行
每行15字段
代码如下
- Sub AAA()
- '声明字符串变量用于获取每一次从文件中读取的字符
- Dim ResultOut As String
- Dim arrTemp() As String
- Dim hang As String
- '获取文件名
- Dim FileName As String
- Dim MyRow As Integer
- Dim MyColumn As Integer
- MyRow = 1
- MyColumn = 1
- Dim fd As FileDialog
- Set fd = Application.FileDialog(msoFileDialogFilePicker)
- '判断用户在对话框中的输入是否有效
- If fd.Show = -1 Then
- FileName = fd.SelectedItems(1)
- filenum = FreeFile()
- Open FileName For Input As #filenum
- '从文件中循环读出由逗号分开的数据,并写入单元格
- While Not EOF(filenum)
- Line Input #filenum, ResultOut
- 'arrTemp = ResultOut
- 'MsgBox ResultOut
- arrTemp = Split(ResultOut, "|")
- 'MsgBox arrTemp
- '如果读出的字符串不为空则输入到当前行工作表单元格
- If ResultOut <> "" Then
- 'ActiveSheet.Cells(MyRow, MyColumn).Value = _
- arrTemp
- 'ActiveSheet.Cells(MyRow, MyColumn).Value = _
- Application.WorksheetFunction.Transpose(arrTemp)
- ActiveSheet.Cells(MyRow, MyColumn).Resize(1, ubound(arrtemp)+1) = arrTemp
- MyRow = MyRow + 1
- '如果读出的字符串为空则转到工作表的下一行
- Else
- MyRow = MyRow + 1
- MyColumn = 1
- End If
- Wend
- '关闭文件
- Close #filenum
- MsgBox ("文件导入成功!")
- End If
- End Sub
复制代码 用了十行测试能成功
整个文本测试提示
ActiveSheet.Cells(MyRow, MyColumn).Resize(1, ubound(arrtemp)+1) = arrTemp
这一行出错。
立即窗口运行ubound(arrtemp)结果是88万左右,是不是太多列?怎么解决?
望高手赐教
|
|