我正在尝试将多个文本文件导入单元格A1,A2,A3等。 这意味着文本文件1将转到A1 文本文件2应该转到A2 文本文件3应该转到A3
在stackoverflow上,我发现code看起来几乎就像我要做的那样,除了创建新列。
问题是文件中的文本字符串是分隔的并放在新列中,因为这是代码的目的(使用答案中给出的替代方法)。
我不知道在此代码中要更改的内容是将文件1的所有文本放在单元格A1中。 我希望它是可能的,如果不是我欣赏任何有关其他解决方案的想法。
答案 0 :(得分:0)
注释掉以下代码行应该这样做,因为curCol
设置为1(即A列):
curCol = curCol + 1
我还想指出你链接的代码是非常低效的,因为在每次迭代之前不需要测量底行。它实际上应该用一个简单地改为行号的变量来重写,如:
nxt_row = nxt_row +1
ActiveSheet.Cells(nxt_row, curCol) = DataLine
以下几行代码应该移到子程序的开头:
if Range("A1").Value = "" then
nxt_row = 1
else
if Range("A2").Value = "" then
nxt_row = 2
else
nxt_row = Range("A1").End(xlDown).Offset(1).Row
end if
end if
答案 1 :(得分:0)
如果您希望将每个文件的全部内容放在一个单元格中,以下对您引用的代码的修改可能会有效:
Sub Import_All_Text_Files()
Application.ScreenUpdating = False
Dim thisRow As Long
Dim fileNum As Integer
Dim strInput As String
Const strPath As String = "C:\Temp\Temp\" 'Change as required
Dim strFilename As String
strFilename = Dir(strPath & "*.txt")
With ActiveSheet
thisRow = .Range("A" & .Rows.Count).End(xlUp).Row
Do While strFilename <> ""
fileNum = FreeFile()
Open strPath & strFilename For Binary As #fileNum
strInput = Space$(LOF(fileNum))
Get #fileNum, , strInput
Close #fileNum
thisRow = thisRow + 1
.Cells(thisRow, 1).Value = strInput
strFilename = Dir
Loop
End With
Application.ScreenUpdating = True
End Sub
如果文件太大,我不能保证它会起作用 - Excel对任何一个单元格中插入的字符数量有限制(如果我没记错的话,可以是32,767)。