[英]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.