Excel 用VBA制作文件并写入

Excel 用VBA制作文件并写入,excel,vba,Excel,Vba,我编写了一个代码,将表格保存在excel中的“.dat”文件中,其中“.dat”文件的名称是表格的标题 表格标题下的信息应保存在顶部对应的文件中 例: A1 B2 C3 B7 12 78 99 15 13 79 99 15 14 80 99 15 15 81 99 15 16 82 99 15 17 83 99 15 18 84 99 15 19 85 99 15 86 99 15 87 99 88 99 89 99 99 99 我要的

我编写了一个代码,将表格保存在excel中的“.dat”文件中,其中“.dat”文件的名称是表格的标题

表格标题下的信息应保存在顶部对应的文件中

例:

A1 B2 C3 B7
12  78  99  15
13  79  99  15
14  80  99  15
15  81  99  15
16  82  99  15
17  83  99  15
18  84  99  15
19  85  99  15
86  99  15
87  99
88  99
89  99
99
99

我要的是A1.dat,号码是12 13 14 15 16 17 18 19

“全部”是可以的,但当我选择“全部”时,文件中有空格和结尾,如下所示:

12
13
14
15
16
17
18
19
" "
" "
" "
" "
" "
“”

文件中没有“”,我写它们是为了强调我的文件中有空格。我不希望我的文件中有这些空格

代码如下:

Sub salvaremodule2()
Dim a As Range
Dim b As Range
Dim i As Integer
Dim k As Integer
Dim j As Integer
Dim folderPath As String
Dim file As String
Dim TextFile As Integer

If Len(Dir(ThisWorkbook.Path & "\dat-uri\", vbDirectory)) = 0 Then MkDir ThisWorkbook.Path & "\dat-uri\"
End If
folderPath = ThisWorkbook.Path & "\dat-uri\"

Set a = Application.InputBox("Referintele:", Type:=8)
For i = 1 To a.Columns.Count

file = folderPath & (a(i) + ".dat") 'titlu
Open file For Output As #1

Close #1

file = folderPath & (a(i) + ".dat") 'incarcare module in fisiere

Open file For Output As #2

For j = 2 To a.Rows.Count

Print #2, a(j, i)


Next j
Close #2
Next i

End Sub

谢谢大家!

如果我正确理解了您的代码,您可以通过打开一个输入框并通过代码写入输入框然后关闭它来写入文件?我不知道该如何利用这种技术,但您的问题是,对于每一列,
j
循环一直到
a.rows.count
,而您应该只到
I
列中的值的末尾。我想到了不同的方法,在编写完文件后,只选择文本或删除空行,但是我找不到代码组合。如果我正确地解决了您的问题,您需要首先循环所有列(
iCol
),然后通过
while.cell(iRow,iColumn)”“
循环,并在文件中写入每一行。