关于EXCEL导出数据至TXT文件时产生的问题
<P>最近用VBA编了一个程序,来实现将EXCEL中的数据导出至TXT文件中。程序如下:</P><P>Sub Macro1()<BR>fno = FreeFile<BR>Open "c:\File.txt" For Output As #fno<BR>Print #fno, "("; "NUM"; " "; "ITEMA"; " "; "ITEMB"; " "; "ITEMC"; " "; "ITEMD"; ")"<BR>Dim n As Integer<BR>n = 6</P>
<P>Do Until Cells(n, 2) = ""<BR>Print #fno, "("; Cells(n, 2).Value; Cells(n, 3).Value; " "; Cells(n, 4).Value; Cells(n, 14).Value; " "; Cells(n, 44).Value; ")"<BR>n = n + 1<BR>Loop<BR>Close #fno<BR>' Macro1 Macro<BR>' 宏由 light 录制,时间: 2006-6-17<BR>'</P>
<P>'<BR>End Sub<BR>在执行了程序之后,C:\FILE.TXT文件中产生这样的结果:</P>
<P>(NUM ITEMA ITEMB ITEMC ITEMD)<BR>( 1 OPAC1-1-1A .74 三相 EB)<BR>( 2 OPAC1-1-1B .74 三相 EB)<BR>( 3 OPAC1-1-2A 1.1 三相 EB)<BR>( 4 OPAC1-1-2B 1.1 三相 EB)<BR>( 5 OPAC1-1-3A .74 三相 EB)<BR>( 6 OPAC1-1-3B .74 三相 EB)<BR>( 7 SFJ1-1-1 .55 三相 F)<BR>( 8 EFJ1-1-1 .55 三相 F)<BR>( 9 SFJ1-1-2A .55 三相 F)<BR>( 10 SFJ1-1-2B .55 三相 F)<BR>( 11 EFJ1-1-2A .55 三相 F)<BR>( 12 EFJ1-1-2B .55 三相 F)<BR>( 13 EF1-1-2A .37 三相 F)<BR>( 14 EF1-1-1 .37 三相 F)<BR>( 15 EF1-1-2B .37 三相 F)<BR>( 16 SFJ1-1-2C .55 三相 F)<BR>( 17 EFJ1-1-2C .55 三相 F)<BR>( 18 EF1-1-3 .37 三相 F)<BR>( 19 EFJ1-1-3 .55 三相 F)<BR>( 20 SFJ1-1-3 .55 三相 F)<BR>( 21 备用 三相 EB)<BR>( 22 备用 三相 EB)<BR>( 23 备用 三相 EB)</P>
<P>其它正常,只是小于1的小数前的0不见了。如原EXCEL中的0.37和0.55,输出至TXT文件时变成了.37和.55,为什么?还顺便问一下,怎样将EXCEL单元格中的值加双引号输出至TXT文件?谢谢!</P> <P>1.Cells(n, 4).Value 改成 Format(Cells(n, 4).Value , "#0.00")</P>
<P>2.双引号 Chr(34)</P>
<P> </P> <P>顺便说一句 Excel可以直接另存为TXT文件 不用写VBA,除非格式上有特殊条件要求</P> 谢谢!确实有格式要求!按照您的方法改动程序后,已经可以实现小于1的小数的输出,但是在EXCEL中输入已经出线问题,如想输入1,就必须输入1.0,否则直接就转换成0.001。 <P>在EXCEL里 设置一下单元格格式 把小数位数定在4位</P>
<P>就不会出现输1变0.001了</P>
页:
[1]