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行。
展开
 我来答
2724421
2013-06-13 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:1002万
展开全部
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
yhhzhengyi
2013-06-13 · TA获得超过477个赞
知道小有建树答主
回答量:1167
采纳率:0%
帮助的人:323万
展开全部
写入txt,vb和vba没有什么区别

你可以百度下vb open语句,vb print 语句

弄懂这2个语句,就可以完美的写入了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式