2014-09-05 193 views
-2

我需要将文本文件(.txt)转换为MS Word文档(.docx)的VBA代码。有没有人有代码来完成这个?我在一个目录中有许多文本文件,并且希望将它们批量转换为相同目录下的docx文件,或者使用相同的目录名称将VBA创建的目录与“转换”添加到目录名称中。我有超过800个txt文件被转换。将文本文件转换为Word docx

谢谢 尼尔森

回答

0

您可以通过记录导入文本文件并将其保存到一个Excel(XLS,XLSX)文件的步骤在Excel中创建一个VBA脚本/宏。我使用Excel完成了这项工作,但Word具有类似的录制/宏功能。

0

Here我创建了一个脚本,它完全opposite.Here的一个被整顿的一个,创建一个docxtxt(这是一个VBScript /批混合并需要保存为.batNEED管理员权限(开始主要是看不见的字):

'>nul 2>&1|| @copy /Y "%windir%\System32\doskey.exe" "'.exe" >nul 
'&&@echo off && cls &&goto :end_vbs 

Set WordApp = CreateObject("Word.Application") 
WordApp.Visible = FALSE 

'Open txt for reading 
Set WordDoc = WordApp.Documents.Open(WScript.Arguments.Item(0),false) 

'wdFormatText 2 
'wdFormatUnicodeText 7 
'wdFormatDocumentDefault 16 
'http://msdn.microsoft.com/en-us/library/office/ff839952.aspx 



WordDoc.SaveAs WScript.Arguments.Item(1) ,16 
WordDoc.Close() 
WScript.Quit 

:end_vbs 

'& if "%~1" equ "-help" echo %~n0 text_document [ destination ] 
'& if "%~1" equ "" echo txt document not given & exit /b 1 
'& if not exist "%~f1" echo txt document does not exist & exit /b 2 
'& if "%~2" equ "" (set "save_as=%~dpn1.docx") else (set "save_as=%~2") 
'& if exist "%~f2" del /s /q "%~f2" 
'& for %%# in ("%save_as%") do set "save_as=%%~dpn#" 
'& taskkill /im winword* /f >nul 2>&1 
'& cscript /nologo /E:vbscript %~f0 "%~f1" "%save_as%" 
'& pause 
'& rem del /q '.exe 

可能是我应该创建的代码会更方便的JScript/BAT混合... 反正这个接受2个参数一个为.txt文件,一个用于.docx desination但txt文件将保持und eleted。您可以使用它来迭代您的txt文件转换和删除它们

+0

对不起,但我对编程知之甚少,所以我不知道如何使用此代码。我直接将它复制到一个.bat文件,但它似乎没有做任何事情,除了在屏幕上闪烁DOS窗口,然后停止。我如何去使用这段代码?对不起,成为这样的新手。 – ntman2 2014-09-06 18:36:50

+0

@ ntman2 - 首先,您可以在结尾处添加暂停以查看会发生什么情况,或从命令提示符调用该脚本。脚本需要参数 - “txt”的路径和要创建的“docx”的路径。可以说它保存为'txt2docx.bat'。要将'test.txt'转换为'test.docx',你需要像这样命令提示符来调用它:'c:\ dir> txt2docx.bat“c:\ dir \ test.txt“”c:\ res \ test.docx“' – npocmaka 2014-09-06 18:54:17