weixin7944 发表于 2006-6-18 18:34:00

关于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&nbsp; .74 三相 EB)<BR>( 2 OPAC1-1-1B&nbsp; .74 三相 EB)<BR>( 3 OPAC1-1-2A&nbsp; 1.1 三相 EB)<BR>( 4 OPAC1-1-2B&nbsp; 1.1 三相 EB)<BR>( 5 OPAC1-1-3A&nbsp; .74 三相 EB)<BR>( 6 OPAC1-1-3B&nbsp; .74 三相 EB)<BR>( 7 SFJ1-1-1&nbsp; .55 三相 F)<BR>( 8 EFJ1-1-1&nbsp; .55 三相 F)<BR>( 9 SFJ1-1-2A&nbsp; .55 三相 F)<BR>( 10 SFJ1-1-2B&nbsp; .55 三相 F)<BR>( 11 EFJ1-1-2A&nbsp; .55 三相 F)<BR>( 12 EFJ1-1-2B&nbsp; .55 三相 F)<BR>( 13 EF1-1-2A&nbsp; .37 三相 F)<BR>( 14 EF1-1-1&nbsp; .37 三相 F)<BR>( 15 EF1-1-2B&nbsp; .37 三相 F)<BR>( 16 SFJ1-1-2C&nbsp; .55 三相 F)<BR>( 17 EFJ1-1-2C&nbsp; .55 三相 F)<BR>( 18 EF1-1-3&nbsp; .37 三相 F)<BR>( 19 EFJ1-1-3&nbsp; .55 三相 F)<BR>( 20 SFJ1-1-3&nbsp; .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>

yshf 发表于 2006-7-1 17:02:00

<P>将宏改为如下即可:</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</P>
<P>dim f3 as string<BR>n = 6</P>
<P>Do Until Cells(n, 2) = ""</P>
<P>f3 = LTrim(Str(Abs(Cells(n, 4).Value)))</P>
<P>If Cells(n, 4).Value &gt; 0# And Cells(n, 4).Value &lt; 1# Then f3 = "0" + f3<BR>If Cells(n, 4).Value &gt; -1# And Cells(n, 4).Value &lt; 0# Then f3 = "-0" + f3<BR>Print #fno, "("; Cells(n, 2).Value; Cells(n, 3).Value; " "; f3; 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>EXCEL单元格中的值加双引号也一齐输出至TXT文件。</P>
页: [1]
查看完整版本: 关于EXCEL输出至TXT文件产生的问题!