excel - Excel中300万行端口数据来自txt

标签 excel vba text split export-to-excel

我需要从一个带有 Excel 中 300 万行端口数据的文本文件中,每 100 万行端口开始一个新列表。代码有什么问题,告诉我?

    Sub ReadFile()
  Dim I, J
  I = 1
  J = 1
  File = "\\bla.bla.bla\Desktop\vsr.txt"
  Open File For Input As #1
  Do While Not EOF(1)
    Line Input #1, MyString
    Sheets("LIST" & J).Cells(I, 1) = MyString
    If I = 1000000 Then
      I = 1
      J = J + 1
    Else
      I = I + 1
    End If
  Loop
  Close #1
End Sub

最佳答案

也许这样的事情会更好。我无法测试它,因为您没有包含相同的数据而且我不知道是什么 port data是,但它应该工作。
如果它有问题(或任何时候遇到代码问题)尝试使用 F8 到 单步执行代码 找出每一行发生的确切情况。 (更多信息来自 Chip Pearson here。)

Option Explicit

Sub ReadFile()
    Const fName = "\\bla.bla.bla\Desktop\vsr.txt"
    Dim rowNum As Long, shtNum As Long, myString As String
    
    Open fName For Input As #1
    shtNum = 1
    Do While Not EOF(1)
        rowNum = rowNum + 1
        Line Input #1, myString
        Sheets("LIST" & shtNum).Cells(rowNum, 1) = myString
        If rowNum = 1000000 Then
            shtNum = shtNum + 1
            rowNum = 0
        End If
    Loop
    Close #1
End Sub
一些注意事项:
  • 使用'Option Explicit在 [每个] 模块的顶部 [总是] 以帮助定位未正确声明或处理的变量。 (即,MyString 未声明)
  • 就个人而言,我尽量避免使用常用词,如 File对于变量,因为它可能是也可能不是“保留字”(即 Excel 内置的常量或函数名称)
  • 就个人而言,我通常将变量的第一个字母小写,以帮助将变量与内置关键字区分开来,一目了然。
  • 避免使用无意义的变量,如 IJ (尤其是在发布代码以寻求他人帮助时)。几个额外的字符使代码更容易理解和以后修改/调试。
  • 声明变量时,尽可能指定数据类型。
  • 您没有提及有关创建工作表的任何内容,并且您的代码也没有尝试这样做,因此此代码假定所有必需的输出工作表都存在并且为空白。
  • 使用 shtNum 的替代方法(或 J 在您的示例中)将使用 Int(rowNum/1000000)+1获取工作表编号。此公式返回 1对于 0 到 999999,2 1000000 到 1999999 等
  • 关于excel - Excel中300万行端口数据来自txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51960686/

    相关文章:

    c++ - 在 C++ 中使用 Scripting.FileSystemObject 时,#import 之后的下一步是什么?

    c - 是否有使用 C 读取 Excel 文件的 FOSS 库

    excel - 刷新 WorkbookConnection 或其 ODBCConnection 有什么区别吗?

    r - 使用 R 将大型文本文件构建为数据框

    .net - EPPlus 无效地址格式错误

    python - 如何下载带有 Gspread 的 Google Docs excel 表并在本地访问数据(A1 表示法)?

    excel - 为名为 xxxx 的每一行复制粘贴单元格范围

    VBA Excel 更改斜体并添加 </and/>

    python - 字符串对齐不适用于 ansi 颜色

    c - 如何将 .c 文件从 Windows 重新格式化为 UNIX?