【问题标题】:excel: import text from text file, onto next available row on spreadsheet?excel:将文本文件中的文本导入电子表格的下一个可用行?
【发布时间】:2015-07-15 01:14:36
【问题描述】:

我正在使用以下 VBA 代码将文本从我的文本文件导入到 excel 的列中,除了它总是在第 1 行插入我的文本并覆盖该行中先前的任何文本这一事实之外,它的工作效果很好。我需要一种方法让代码将文本插入电子表格的下一个可用行吗?

这是我的代码:

    Sub ImportFile()
    Close #1
    Open "Y:\Incident Logs\INSC89JH.txt" For Input As #1
    A = 1
     Do While Not EOF(1)
            Line Input #1, TextLine
            Cells(A) = TextLine
            A = A + 1
        Loop
    Close #1
End Sub

请有人告诉我哪里出错了?谢谢

【问题讨论】:

    标签: excel vba text import


    【解决方案1】:

    尝试改变 Cells(A) = TextLine

    Range("A" & A).Value = TextLine

    这应该可以将包含新行的文本文件放入每个循环的新行中

    编辑。忽略我答案的顶部。如果有人觉得有用,请留下它。

    您需要检查一下使用的范围。

    试试这个

    Sub ImportFile()
    
        Dim rowCount As Long
    
        rowCount = ActiveSheet.UsedRange.Rows.Count + 1
    
        If Cells(1, 1).Value = "" Then rowCount = 1
    
    
        Close #1
        Open "Y:\Incident Logs\INSC89JH.txt" For Input As #1
        A = 1
         Do While Not EOF(1)
                Line Input #1, TextLine
                Cells(rowCount, A) = TextLine
                A = A + 1
            Loop
        Close #1
    End Sub
    

    【讨论】:

    • 不,这不起作用,它只会将我的所有文本导入多行的一列中,而是应该将文本导入一行的不同列,并且每次我运行一个新的文本导入它应该将其插入到下一个可用行
    • 哦,我明白了。误解了这个问题。我会更新我的答案
    • 我的文本文件结构是这样的:Line 1 = Reference, Line 2 = Hello, Line 3 = Cars
    • 好的,现在可以正确导入文本,我的文本文件中的每一行都插入到我需要的一行的另一列中,但是当我尝试再次导入文本文件时,它是没有被插入到下一个可用行,实际上第二次什么都没有导入?
    • 对不起我的错误它插入到电子表格底部的新行中,因为我在测试它时没有删除之前的行。它现在可以工作了,谢谢
    【解决方案2】:

    改变

    Cells(A) = TextLine

    Cells(A, 1) = TextLine

    Cells(A, 1) 中的 1 代表要插入文本的列号(在本例中为 A 列)。因此,如果您想在 C 列中使用它,请将其更改为 Cells(A, 3)

    【讨论】:

    • 这要么需要每次手动输入以更新 columnNo,要么像我的答案一样自动输入
    • 好吧,我摆脱了它以避免混淆。反正你不需要手动更新它
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 2015-03-28
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    相关资源
    最近更新 更多