分享

VBA_txt文件的写入

 wxt208 2016-05-07

'Open 文件名 for 打开方式 as 文件编号


  '打开方式:

     'Input :只能读,不能写

     'Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件

     'Output:可以读,也可以写。但总会把原来的同名文件删除,再新建一个

     

  '读取txt文件内容方法

     'input:从文件中读取指定数量的字符。

     'Input #:把数据读出放在变量里,变量用逗号分隔

     'Line Input #:取出完整的一行

     

  '向文件中写入数据

     'write #:向文件中写入值,值用引号引起来。如果想在同一行中继续写入,可以在前一次写时结尾添加“;”号

     'Print #:向文件中写入值,如果想在同一行中继续写入,可以在前一次写时结尾添加“;”

  '字符的间隔符

     'Spc(n)表示输入n个空字符



'一、用Print写入

  '1 分行输入

  Sub t1()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, '产品名称'

     Print #1, Date

     Close #1

  End Sub

  '2 在同一行输入

  Sub t2()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, '产品名称';

     Print #1, 'A产品'

     Close #1

  End Sub

  '3 输入时添加空格符

  Sub t3()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, '产品名称'; Spc(5);

     Print #1, 'A产品'

     Close #1

  End Sub

 

  '4 在指定的列数输入

  Sub t4()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, '产品名称'; Tab(8); '在第10列输入下面的,如果为空则插入到下一个打印的位置

     Print #1, 'A产品'

     Close #1

  End Sub

  

'二、用Write写入


  Sub t5()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Write #1, '产品名称'

     Write #1, 5

     Close #1

  End Sub

  Sub t6()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Write #1, '产品名称';

     Write #1, 5

     Close #1

  End Sub

  Sub t7()

   Dim f As String

     f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Write #1, '产品名称'; 5 '这里逗号等同于'; '(分号)'

     Close #1

  End Sub

  

'三、Print和Write区别

     '1 写到到txt文件后,字符会添加“,”(逗号)

     '2 除文本外,日期、逻辑值输入结果不一样,两边会加#号

  Sub t8()

    Dim f As String

    f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, Date; 1 = 1; Null

     Write #1, Date; 1 = 1, Null

     Close #1

  End Sub

     

'四 不同类型数值的输入的

   '在用print写入数据时

      '1 日期后要加空格

      '2 数字前后都加空格

      '3 字符前后均不加空格

   Sub t9()

    Dim f As String

    f = ThisWorkbook.path & '\a.txt'

     Open f For Output As #1

     Print #1, Date; 12

     Print #1, Date; 'ABC'

     Print #1, Date; '我爱你'

     Print #1, Date; Date

     Print #1, '我爱你'; 12

     Print #1, '我爱你'; 'abc'

     Print #1, '我爱你'; Date

     Print #1, '我爱你'; 'abc'

     Print #1, 12; 'abc'

     Print #1, 12; '我爱你'

     Print #1, 12; 123

     Print #1, 12; '123'

     Close #1

  End Sub



'将sheet2表中的数据写入到文本文本中

  Sub 转换成txt文件()

    Dim f, arr, x, y, k

    f = ThisWorkbook.path & '\ruku.txt'

    arr = Sheets('sheet2').Range('a1:e6')

    Open f For Output As #1

    For x = 1 To UBound(arr)

      For y = 1 To UBound(arr, 2)

        If y = UBound(arr, 2) Then

         Print #1, arr(x, y)

        Else

         If VBA.IsNumeric(arr(x, y)) Then

            k = 12 - Len(arr(x, y)) - 2

         ElseIf arr(x, y) Like '[A-Z]' Or VBA.IsDate(arr(x, y)) Then

            k = 12 - Len(arr(x, y)) - 1

         Else

            k = 12 - Len(arr(x, y)) * 2

         End If

         Print #1, arr(x, y); Spc(k);

        End If

      Next y

      k = 0

    Next x

  Close #1

  End Sub

     


 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约