2012-07-16 71 views
60

Tôi có tệp được thêm hoặc sửa đổi theo cách thủ công dựa trên các yếu tố đầu vào. Vì hầu hết các nội dung được lặp đi lặp lại trong tệp đó, chỉ có các giá trị hex đang thay đổi, tôi muốn biến nó trở thành một tệp được tạo công cụ.Cách tạo và ghi vào tệp txt bằng VBA

Tôi muốn viết mã c sẽ được in trong đó .txt tệp.

lệnh để tạo ra một tập tin .txt sử dụng VBA là gì, và làm thế nào để tôi viết thư cho nó

+0

Bạn có muốn sửa đổi một tập tin hiện khi nó được tạo ra? Và "mã c" là gì – brettdj

Trả lời

117

Sử dụng FSO để tạo ra các tập tin và ghi vào nó.

Dim fso as Object 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim oFile as Object 
Set oFile = FSO.CreateTextFile(strPath) 
oFile.WriteLine "test" 
oFile.Close 
Set fso = Nothing 
Set oFile = Nothing  

Xem tài liệu ở đây:

+12

khi bạn tham khảo Thời gian chạy tập lệnh trực tiếp, bạn có thể sử dụng các loại chính xác: 'Dim oFs Như New FileSystemObject Dim oFile Là TextStream' –

+0

Có sử dụng Thời gian chạy tập lệnh được ưu tiên hơn phương pháp kênh cũ hơn không? Tôi muốn một số lý do để thông báo cho sinh viên của mình thông tin được hỗ trợ bởi trải nghiệm khác. –

+0

@RickHenderson, tôi thích, nếu đó là ý của bạn. Ưu điểm là đóng gói. Khi bạn phản đối (đặt oFile = Nothing |), hoặc nó nằm ngoài phạm vi, tệp sẽ tự động bị đóng. – Ben

15

một cách dễ dàng với sự dư thừa nhiều ra.

Dim fso As Object 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    Dim Fileout As Object 
    Set Fileout = fso.CreateTextFile("C:\your_path\vba.txt", True, True) 
    Fileout.Write "your string goes here" 
    Fileout.Close 
+0

Có thể sử dụng trình chọn tệp để đặt đường dẫn không? – rrs

-3
Dim SaveVar As Object 

Sub Main() 

    Console.WriteLine("Enter Text") 

    Console.WriteLine("") 

    SaveVar = Console.ReadLine 

    My.Computer.FileSystem.WriteAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt", "Text: " & SaveVar & ", ", True) 

    Console.WriteLine("") 

    Console.WriteLine("File Saved") 

    Console.WriteLine("") 

    Console.WriteLine(My.Computer.FileSystem.ReadAllText("N:\A-Level Computing\2017!\PPE\SaveFile\SaveData.txt")) 
    Console.ReadLine() 

End Sub() 
+0

Điều này có thể giúp với Viết và Đọc một tập tin văn bản –

+1

Tôi nghĩ bạn không đọc câu hỏi là gì và bạn cũng không thích giải thích những gì bạn sẽ cố gắng mà không phải là điều tốt trong khi giúp đỡ người khác. –

+0

Và bạn thậm chí không định dạng câu trả lời đúng cách. – BDL

5
Open ThisWorkbook.Path & "\template.txt" For Output As #1 
Print #1, strContent 
Close #1 
+0

Lời cầu xin viết câu trả lời với một số giải thích và chi tiết. –

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ review/low-quality-posts/17750668) – Rich

+0

Tôi thích phương pháp này với phương thức FSO vì nó không yêu cầu tham chiếu bên ngoài và khá ngắn. Mặc dù tôi khuyên bạn nên sử dụng FreeFile để lấy số tệp thay vì mã hóa nó như số 1. – phrebh

Các vấn đề liên quan