VBA第12期 VBA导出成Excel文件和文本文件技巧

VBA导出成Excel文件和文本文件,这里首先必须熟悉Open语句 ,在读写某个文件之前,必须打开此文件,打开一个不存在的文件就会报错。Open语句语法很复杂,参数也很多。

Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclenght]

读文件容易一些,这里主要介绍写入文件。

编写文本文件的步骤:

  1. 使用Open语句打开或者创建一个文件。
  2. 通过Seek函数在文件中制定位置(可选的)
  3. 通过Write#或者Print#语句将数据写入文件。
  4. 用Close语句关闭文件。

实例如下:

Private Sub CommandButton11_Click()

Dim wjm As String, lasrw

wjm = TextBox21.Text & ".xls"

If Dir(wjm) <> "" Then

Kill wjm

//这里是为了防止创建Excel文件时出错,假如文件已经存在,就必须先删除该文件然后再创建一个新文件。

End If

With Workbooks.Add

.SaveAs Filename:=wjm

.Close Savechanges:=True

End With

Workbooks.Open (wjm)

//这里的工作表的Open属性和上面打开文件的Open语句是不一样的。

Workbooks("实例.xlsm").Activate

Workbooks("实例.xlsm").Sheets("表格1").Copy Workbooks(wjm).Sheets(1)

//这里用Sheets(1)是防止出现写入表格的表名不符,用数字代替就是写入第一张表二不用管表名。

Workbooks(wjm).Save

Workbooks(wjm).Close

Workbooks("实例.xlsm").Activate

lastrw = Sheets("表格1").Range("a1").End(xlDown).Row

msg = "是否同时保存【临时.txt】?" & vbNewLine & "以便于导入"

If MsgBox(msg, vbYesNo) = vbYes Then

  If Dir("e:\导出\临时.txt") <> "" Then Kill "e:\导出\临时.txt"

  Open "e:\导出\临时.txt" For Append As #1

//这里也是是为了防止创建Excel文件时出错,假如文件已经存在,就必须先删除该文件然后再创建一个新文件。

  Write #1, vbNewLine

  For i = 1 To lastrw

   If Left(Range("a" & i), 1) = "6" Then

   wbgpdm = "1" + Range("a" & i).Text

   Else

   wbgpdm = "0" + Range("a" & i).Text

   End If

  Print #1, wbgpdm

  Next

//这里的写入语句 Print #1, wbgpdm就是写入我们想要写入的内容,每次写入一行自动会存入换行符,通过For循环实现写入全部内容。

  Close #1

End If

msg = "是否同时保存至【文件库】列表?" & vbNewLine & "以便于文件下一步操作"

If MsgBox(msg, vbYesNo) = vbYes Then

  index = Workbooks("实例.xlsm").Sheets("文件库").Range("a1").End(xlDown).Row

  If Sheets("文件库").Range("a" & index) = "" Then index = 0

  index = index + 1

  lastrw = index

  repeatbz = 1

  For i = 1 To lastrw

  If Workbooks("实例.xlsm").Sheets("文件库").Range("a" & i) = wjm Then repeatbz = 0

  Next

  If repeatbz Then Workbooks("实例.xlsm").Sheets("文件库").Range("a" & lastrw) = wjm

  UserForm8.RedoAction

End If

End Sub

//语句UserForm8.RedoAction是实现窗口实时更新。msg = "是否同时保存【临时.txt】?" & vbNewLine & "以便于导入"中的vbNewLine是换行,有时候如果消息框中文本太长需要用到换行来处理,否则就会显示不全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值