gpt4 book ai didi

excel - VBA Excel Loop导入文本文件

转载 作者:行者123 更新时间:2023-12-02 10:59:53 25 4
gpt4 key购买 nike

我有一个非常简单的vba宏,我正在尝试使用该宏将文本文件导入excel。文本文件具有给定的名称,并且只有一行数据的行数可变。

我需要做的是
1)从特定工作表中的特定单元格读取文件名
2)使excel将文件中的所有数据行导入到单列中。

这是我到目前为止所拥有的:

Sub Import()

fname = Range("E3")
datadir = Application.ActiveWorkbook.Path
fpath = datadir & "\" & fname

Open fpath For Input As #1

Do Until EOF(1)
Line Input #1, LineFromFile
Range("E3") = LineFromFile
Loop

Close #1
End Sub

它确实会打开文本文件并使用在单元格E3中输入的文件名导入数据,但是它仅打印数据文件中的最后一个值。如果我在后台打开电子表格的情况下运行调试器,则可以看到

以及原始数据和所需的输出示例:
文本文件内容:
5
4.24E-09
15
4.32E-09
25
4.41E-09
35
4.49E-09
45
4.58E-09
55
4.67E-09

an example我想要的最终电子表格的外观。理想情况下,我希望一次单击一个“导入”按钮就可以使用单个宏一次导入多个文件。如果能在初始导入循环中获得帮助,请多谢!

最佳答案

您正在将每行值分配给同一单元格。只需在每次读取一行时增加变量(x),然后使用Range.Offset([Row],[Column])属性将新行写入Range("E3")的偏移量即可。

Range("E3").Offset(x) = LineFromFile


Sub Import()
Dim x As Long

fname = Range("E3")
datadir = Application.ActiveWorkbook.path
fpath = datadir & "\" & fname

Open fpath For Input As #1

Do Until EOF(1)
Line Input #1, LineFromFile
Range("E3").Offset(x) = LineFromFile
x = x + 1
Loop

Close #1
End Sub

关于excel - VBA Excel Loop导入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45518270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com