繁体   English   中英

Excel VBA导出到不带引号的txt文件

[英]Excel VBA Export to txt file without Quotation marks

我需要导出到没有“”标记示例的文本文件

出口这个

创建bts; sitemask =“ 0110”; pcmlink = 40

像这样的出口

“创建bts; sitemask =”“ 0110”“; pcmlink = 40”

我为此找到的这段代码将“”标记去除

Sub Export()
Dim r As Range, c As Range
Dim sTemp As String

Open "c:\MyOutput.txt" For Output As #1
For Each r In Selection.Rows
    sTemp = ""
    For Each c In r.Cells
        sTemp = sTemp & c.Text & Chr(9)
    Next c

    'Get rid of trailing tabs
    While Right(sTemp, 1) = Chr(9)
        sTemp = Left(sTemp, Len(sTemp) - 1)
    Wend
    Print #1, sTemp
Next r
Close #1
End Sub

此代码通过选择运行导出当前选定单元格的代码的单元格起作用,我的问题是,我该如何修改此代码以使其在预定义的单元格范围(例如A1到A10)上进行导出而不是当前选择?

还有没有修改文件路径以将其保存在与活动excel工作表相同的目录中的方法,而不必将完整的文件路径“ C:\\ MyOutput.txt”而不是“ MyOutput.txt”(或类似的东西)放入?

非常感谢

不要直接打开它:

Sub Export()
 Dim r As Range, c As Range
 Dim sTemp As String
 Dim fn As Long
 Dim sfilename

 sfilename = "C:\MyOutput.txt"
 fn = FreeFile

 Open sfilename For Output As #fn
  For Each r In Selection.Rows
    sTemp = ""
    For Each c In r.Cells
        sTemp = sTemp & c.Text & Chr(9)
    Next c

    'Get rid of trailing tabs
    While Right(sTemp, 1) = Chr(9)
        sTemp = Left(sTemp, Len(sTemp) - 1)
    Wend
    Print #fn, sTemp
 Next r
 Close #fn
End Sub

修改将非常明显:假设您的工作簿名为“ ThisWorbook.xls”,而包含要写入文件范围的工作表名为“ This Worksheet”,那么您将修改如下代码

' ... Previous original code

' Open file in the same folder as the worksheet
Open Workbooks("ThisWorbook.xls").Path & "\MyOutput.txt" For Output As #1

' Loop in predefined range instead of current selection
For Each r In Worksheets("This Worksheet").Range("A1:A10").Rows

' ... Following original code

您有一个excel文件,当您将文件另存为.txt时,将出现引号。 标记数据(CTRL + A),将数据复制到剪贴板(CTRL + C)。 打开记事本,粘贴数据(CTRL + V)保存数据...在那里,数据不带引号。

根据我在VBA 2010中看到的内容,Write函数创建的输出带有不需要的包装引号字符。

但是,类似的打印功能会在不带引号的情况下写入文件。

但是,如果要在文本文件中添加引号,则可以在引号位置创建字符串连接,以使用Chr(39)将其添加到其中。

输入以下内容:创建bts; sitemask =“ 0110”; pcmlink = 40

代码为:

"Create bts; sitemask = " & Chr(39) & "0110" & Chr(39) & "; pcmlink = 40"

将文件另存为ASCII文件而不是unicode

fso.CreateTextFile(path,True, False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM