
VBA将excel另存为txt文件的代码如何修改
以下是从网上找的代码:我作了简单修改:Sub另存本表为TXTxtu()DimFullNameAsString,tRanAsRangeApplication.ScreenU...
以下是从网上找的代码:我作了简单修改:
Sub 另存本表为TXTxtu()
Dim FullName As String, tRan As Range
Application.ScreenUpdating = False
Set tRan = Range("b14")
Do While tRan <> ""
FullName = ThisWorkbook.Path & "\" & tRan.Offset(1, 0) ".txt"
Open FullName For Output As #1
Print #1, tRan & tRan.Offset(0, 1) & tRan.Offset(0, 2) & tRan.Offset(0, 3) & tRan.Offset(0, 4) & tRan.Offset(0, 5) & tRan.Offset(0, 6) & tRan.Offset(0, 7) & tRan.Offset(0, 8) & tRan.Offset(0, 9) & tRan.Offset(0, 10) & tRan.Offset(0, 11) & tRan.Offset(0, 12)
Close #1
Set tRan = tRan.Offset(1, 0)
Loop
Application.ScreenUpdating = True
MsgBox "生成完毕", , "http://www.excelba.com"
End Sub
但这个代码不适合,因为它是以B14的值为文件名保存txt的,再以B15的值为文件名进行保存,以此往下类推,如果B15=B14,则文件会覆盖原文件进行保存,如果不同则会保存另一个txt文件,但是我想把所有的数据保存在一个txt文件里
我想要的是将B14-B34之间值不为空值的B14-N14值都显示出来,比如说B14不为空值时显示B14-N14的值,B15值为空时,则不显示B15-N15的值,B16不为空则显示B16-N16的值,………………一直到第34行。 展开
Sub 另存本表为TXTxtu()
Dim FullName As String, tRan As Range
Application.ScreenUpdating = False
Set tRan = Range("b14")
Do While tRan <> ""
FullName = ThisWorkbook.Path & "\" & tRan.Offset(1, 0) ".txt"
Open FullName For Output As #1
Print #1, tRan & tRan.Offset(0, 1) & tRan.Offset(0, 2) & tRan.Offset(0, 3) & tRan.Offset(0, 4) & tRan.Offset(0, 5) & tRan.Offset(0, 6) & tRan.Offset(0, 7) & tRan.Offset(0, 8) & tRan.Offset(0, 9) & tRan.Offset(0, 10) & tRan.Offset(0, 11) & tRan.Offset(0, 12)
Close #1
Set tRan = tRan.Offset(1, 0)
Loop
Application.ScreenUpdating = True
MsgBox "生成完毕", , "http://www.excelba.com"
End Sub
但这个代码不适合,因为它是以B14的值为文件名保存txt的,再以B15的值为文件名进行保存,以此往下类推,如果B15=B14,则文件会覆盖原文件进行保存,如果不同则会保存另一个txt文件,但是我想把所有的数据保存在一个txt文件里
我想要的是将B14-B34之间值不为空值的B14-N14值都显示出来,比如说B14不为空值时显示B14-N14的值,B15值为空时,则不显示B15-N15的值,B16不为空则显示B16-N16的值,………………一直到第34行。 展开
2个回答
展开全部
Sub 另存本表为TXTxtu()
Dim FullName As String, Row As Long, RowArr
Application.ScreenUpdating = False
FullName = ThisWorkbook.Path & "\" & ActiveSheet.Name & ".txt"
Open FullName For Output As #1
For Row = 14 To 34
If Range("B" & Row) <> "" Then
With WorksheetFunction
RowArr = .Transpose(.Transpose(Range("B" & Row & ":N" & Row)))
End With
Print #1, Join(RowArr, " ")
End If
Next
Close #1
Application.ScreenUpdating = True
MsgBox "生成完毕"
End Sub
追问
你的代码正是我想要的,我不会修改代码是个小遗憾:
能不能在B-N的某几个数值前加点东西呢?比如我想在HIJ前分别加上长宽高?
追答
Sub 另存本表为TXTxtu()
Dim FullName As String, Row As Long, RowArr
Application.ScreenUpdating = False
FullName = ThisWorkbook.Path & "\" & ActiveSheet.Name & ".txt"
Open FullName For Output As #1
For Row = 14 To 34
If Range("B" & Row) <> "" Then
With WorksheetFunction
RowArr = .Transpose(.Transpose(Range("B" & Row & ":N" & Row)))
End With
RowArr(7) = "长:" & RowArr(7)
RowArr(8) = "宽:" & RowArr(8)
RowArr(9) = "高:" & RowArr(9)
Print #1, Join(RowArr, " ")
End If
Next
Close #1
Application.ScreenUpdating = True
MsgBox "生成完毕"
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |