導航:首頁 > 文件教程 > vba寫文本文件

vba寫文本文件

發布時間:2021-11-14 03:59:26

㈠ 如何通過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生成成功!"'提示
閱讀全文

與vba寫文本文件相關的資料

熱點內容
網路品牌推廣方案怎麼做 瀏覽:607
與國外分享文件 瀏覽:333
服務端gm命令在哪個文件 瀏覽:581
手機壁紙圖片文件位置 瀏覽:764
如何在中望cad中載入燕秀工具箱 瀏覽:208
pad連u盤怎麼傳文件 瀏覽:907
qq如何建文件夾 瀏覽:612
通行寶app怎麼充值 瀏覽:732
萌動歌姬安卓停服 瀏覽:985
pe裝機工具鏡像文件路徑怎麼選 瀏覽:113
win10sd卡無法讀取 瀏覽:211
蘋果手機被偷了怎麼才能找回來 瀏覽:643
linux掃描網段ip 瀏覽:733
新舊改造文件名 瀏覽:114
激光下料軟體用的是NC文件 瀏覽:711
以什麼年齡來學c編程 瀏覽:938
網路素雞什麼意思 瀏覽:492
賺微信紅包的紙牌游戲 瀏覽:699
刪除win10主板密鑰 瀏覽:191
linux刪除最近文件 瀏覽:762

友情鏈接