㈠ 如何通过VBA打开txt文件,按要求编辑后保存
1、直接采用Open函数+Lineinput命令
PrivateSubtxt_read()
DimtxtAsString
Open"D:dzh.txt"ForInputAs#1'
'对文件做任何I/O操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行I/O之用,
'并决定缓冲区所使用的访问方式。
'打开文件作为数据输入用,文件号为#1
DoWhileNotEOF(1)
LineInput#1,txt'从已打开的顺序文件中读出一行并将它分配给String变量
'LineInput#语句一次只从文件中读出一个字符,直到遇到回车符(Chr(13))
'或回车–换行符(Chr(13)+Chr(10))为止。回车–换行符将被跳过,而不会被附加到字符串上
MsgBoxtxt
Loop
Close#1
EndSub
2、利用FileSystemObject对象(引用windows script host object model)
SubTextStreamTest()
'**如果引用“windowsscripthostobjectmodel”,可以定义如下的数据类型,编程更方便!!!!*******
DimfsAsFileSystemObject,fAsFile,tsAsTextStream,sAsString
'打开一个只读文件,不能对此文件进行写操作/
'打开一个用于写操作的文件。如果和此文件同名的文件已存在,则覆盖以前内容/
'打开一个文件并写到文件的尾部
ConstForReading=1,ForWriting=2,ForAppending=8
'使用系统缺省打开文件/以Unicode格式打开文件/以ASCII格式打开文件
ConstTristateUseDefault=-2,TristateTrue=-1,TristateFalse=0
'Dimfs,f,ts,s
Setfs=CreateObject("Scripting.FileSystemObject")
'FileSystemObject对象提供对计算机文件系统的访问
'下面FileSystemObject.CreateTextFile返回一个TextStream对象,该对象是可读并可写的:
OnErrorResumeNext'如果文件存在,下个命令会出错!获得文件
fs.CreateTextFile("test1.txt",False).WriteLine("Thisisatest.")'创建一个文件,返回一个用于该文件读写的TextStream对象
Setf=fs.GetFile("test1.txt")'返回一个和指定路径中文件相对应的File对象
'错误!f.WriteLine("Thisisatest.")'向创建的文本文件中写入一行文本,非TextStream对象,错误!!
Setts=f.OpenAsTextStream(ForAppending,TristateUseDefault)'打开一个指定的文件并返回一个TextStream对象
'OpenAsTextStream方法提供了和FileSystemObject.的OpenTextFile方法相同的功能/
'此外,OpenAsTextStream方法还可以用于对一个文件进行写操作。
ts.Write"HelloWorld"
ts.Close
Setts=f.OpenAsTextStream(ForReading,TristateUseDefault)
DoWhileNotts.AtEndOfStream
s=ts.ReadLine
MsgBoxs
Loop
ts.Close
EndSub
㈡ VBA实现读取text文本内容,写入到单元格
Subtest()
DimstarRngAsRange
SetstarRng=Sheet1.Range("B5")'要输入的第一个单元格
DimtxtPathAsString,nextLineAsString
txtPath=ThisWorkbook.Path&" emp.txt"'txt所在的目录
OpentxtPathForInputAs#1
DoWhileNotEOF(1)
OnErrorResumeNext
LineInput#1,nextLine
IfInStr(nextLine,"@@@@")>0Then'如果包含连续4个以上的@则换行
SetstarRng=starRng.Offset(1,0)'下一行
Else
starRng=starRng&IIf(starRng.Value="","",Chr(10)&Chr(13))&nextLine
EndIf
Loop
Close#1
EndSub
我就要悬赏,能给多少就给多少,
㈢ execl高手用VBA改写成用文本TXT输出结果保存
OptionExplicit
Dimfso,tso
DimM,N,A()
'主程序
M=inputbox("输入M(2~36)","M",15)+0
N=inputbox("输入N(2~7)","N",6)+0
IfM<2OrM>36OrN<2OrN>7Then
MsgBox"M、N不在规定范围内,请修改"
Else
ReDimA(N)
setfso=createobject("scripting.filesystemobject")
settso=fso.createtextfile("1.txt")
CallC(1)
tso.close
EndIf
SubC(ByValt)
Dimi
Fori=A(t-1)+1ToM
A(t)=i
Ift=NThen
tso.writelinejoin(A,chr(9))
Else
CallC(t+1)
EndIf
Next
EndSub
反正都是生成文本文件,还不如直接用VBS来写,代码在上面的,可以粘贴到记事本保存为VBS文件,附件内容同上面的代码,下载到本地后鼠标双击可以执行,执行完毕生成的文件是1.TXT。
我用36,7生成了结果,文本文件177388200字节,有点大,但是结果正常。
㈣ VBA如何将变量写入文本文件
对象就是的赋值,必需使用set语句
public
sub
测试()
dim
dyg
as
range
set
dyg
=
range("b2")
end
sub
你完全可以不用定义为单元格对象,直接赋值就行了
public
sub
测试()
dim
dyg$'定义字符串变量
dyg
=
range("b2")
end
sub
㈤ Excel VBA 文本文件打开对话框以及读写
建议用FileSystemObject操作:
示例
SubReadTextFile()
DimfsAsObject
DimobjFileAsObject
DimstrContentAsString
DimstrFileNameAsString
strFileName="C:aaa.txt"'此处可以用其他变量代替
Setfs=CreateObject("Scripting.FileSystemObject")
SetobjFile=fs.OpenTextFile(strFileName)
DoWhileNotobjFile.AtEndOfStream
strContent=strContent&objFile.ReadLine&vbCrLf
Loop
objFile.Close
SetobjFile=Nothing
ActiveWorkbook.Sheets(3).Select
Range("A1").Select
Selection.Formula=strContent
End
另外,你用了Application.FileDialog(msoFileDialogOpen)打开文件,选择后实际上是没有打开文件的动作的,
需要用代码打开,文件名就是上面网友回答的“FileName = fd.SelectedItems(1) '记录文件路径(指定文本文件名)”
然后使用你常用的Workbooks.OpenText命令打开吧!
不然肯定是“打开以后什么都没有,跟没打开似的”了!
㈥ 求助vba代码该怎么写,把excel内容写入txt
用法:运行代码,结果会生成在excel所在的文件夹下面的output.txt中。如果想指定运算区域,则将,选中你想要挑选的区域,'Set zon = Application.InputBox("please choose the zone", Type:=8)前的 ' 去掉然后添加到 Set zon = Range("A1:Z1000")前面。
Sub output()
Dim zon As Range
Dim ttr, ttc As String
Open ThisWorkbook.Path & "\output.txt" For Output As #1
Set zon = Range("A1:Z1000")
'Set zon = Application.InputBox("please choose the zone", Type:=8)
For Each Rng In zon
If Rng.Font.Color = 255 Then
ttr = Cells(Rng.Row, 1)
ttc = Cells(1, Rng.Column)
Print #1, ttr, ttc, Rng
End If
Next
Close #1
End Sub
㈦ Excel里VBA链接打开文本文件怎么写,用记事本打开
Private Sub CommandButton1_Click()
Shell "notepad c:\boot.ini", vbNormalFocus
End Sub notepad 是记事本的系统程序名,其他程序需要完整路径和完整程序文件名了。要打开的文本文件可以在notepad后加空格后再加上完整路径和完整文本文件名。这样就ok了!希望帮到您哦!
㈧ VBA修改文本文件数据
对于“文本文件”,基本上这是没办法的事。“文本文件”只能看作是一种“顺序文件”。
无论什么语言的代码来改写,都牵涉到“数据移动”的问题。
毕竟,绝大多数情况下,你的这种所谓的“修改”,被改变的部分,数据长度都是会有变化的。
无论是变长了,或者变短了,在它后面的数据全部都要进行“移动”,
这种情况下,任何方法改数据,都是得“重新写”后面的数据。
如果文件较大,必然费时。没有“快”的方法。
但是,如果长度没有变化(新内容跟原内容一样长),都可以从指定位置开始写入新数据。
这时,无论哪种语言的代码,都可以快速完成操作。
其实,楼主要想提高“速度”,应该考虑一种能够“随机读写”的存储结构来组织文件,
而不是用“文本文件”(当然不知道楼主的需求,是否可以这样处理)。
如果用可以“随机读写”的数据存储结构,这样就可以达到快速存取、快速修改的目的。
㈨ VBA怎样将值写入为文件
下面的程序供你参考:
㈩ 如何用VBA生成txt脚本
VBA生成TXT的代码如下:
Open"C:输出.txt"ForOutputAs#1'生成TXT文件
Print#1,"输出内容"'写入TXT的内容
'如果要输出EXECL值,可以:Print#1,Range("A1")'将A1值输出
Close#1'关闭文件句柄
MsgBox"C:输出.txt生成成功!"'提示