我需要导出到没有"的文本文件标记示例
导出此
创建bts; sitemask =" 0110&#34 ;; pcmlink = 40
像这样的出口
"创建bts; sitemask ="" 0110"&#34 ;; 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用于导出而不是当前选择?< / p>
还可以修改文件路径以保存在与活动excel表相同的目录中,而不必放入完整的文件路径&#34; C:\ MyOutput.txt&#34;相反&#34; MyOutput.txt&#34; (或类似的东西)?
非常感谢
答案 0 :(得分:1)
请勿直接打开它:
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
答案 1 :(得分:1)
修改将非常明显:假设您的工作簿已命名为&#34; ThisWorbook.xls&#34;,并且包含您要写入文件的范围的工作表名为&#34;此工作表&#34 ;然后你将像
一样调整代码' ... 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
答案 2 :(得分:1)
您有一个Excel文件,当您将文件另存为.txt时,会出现引号。标记数据(CTRL + A),将数据复制到剪贴板(CTRL + C)。 打开记事本,粘贴数据(CTRL + V)保存数据... 那里,没有引号的数据。
答案 3 :(得分:0)
从我在VBA 2010中看到的情况来看,Write函数使用不需要的包装引号字符创建输出。
但是,类似的Print函数会在没有引号的情况下写入文件。
但是如果你想在文本文件中引用,你可以在引用位置创建一个字符串连接,用Chr(39)添加它们,例如。
输出: 创建bts; sitemask =“0110”; pcmlink = 40
代码为:
"Create bts; sitemask = " & Chr(39) & "0110" & Chr(39) & "; pcmlink = 40"
答案 4 :(得分:0)
将文件另存为ASCII文件而不是unicode
fso.CreateTextFile(path,True, False )