以下是引用lizheqian168在2007-10-31 15:03:17的发言: 在一个文件夹下,有四五百个文件,从网上下载的,所有文件名都是编号,不是真正的文件名,大都是word,ppt文档 少量rar。只要改word的就可以,其它的能改也不反对。有的word文档中只有图片,没有文字,这类的可以不改。 1、现在把文件名改为第一行文字的名字。只要实现第一种可能就可以,当然,要是能第二种可能更好 2、文件名可能出现重复,如果出现重复,则按照后面加上编号。 help!help!help! 请参考: '* +++++++++++++++++++++++++++++ '* Created By SHOUROU@ExcelHome 2007-11-5 6:38:14 '仅测试于System: Windows NT Word: 11.0 Language: 2052 '№ 0269^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Option Explicit Sub NewNameWithDocuments() Dim MyDialog As FileDialog, oDoc As Variant, myDoc As Document Dim myRange As Range, oldName As String, ErrArray() As Variant Dim oArray As Variant, newName As String On Error Resume Next '忽略错误 '定义一个导致文件名出错的数组 ErrArray = Array("\", "/", "*", "?", "<", ">", "|", """", Chr(9), Chr(11), Chr(13)) '定义一个文件夹选取对话框 Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog .Filters.Clear '清除所有文件筛选器中的项目 .Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件 .AllowMultiSelect = True '允许多项选择 If .Show <> -1 Then Exit Sub For Each oDoc In .SelectedItems '在所有选取项目中循环 newName = "" '以隐藏方式打开Word文档 Set myDoc = Word.Documents.Open(FileName:=oDoc, Visible:=False) Set myRange = myDoc.Paragraphs.First.Range '取得第1个段落区域 oldName = Application.CleanString(myRange.Text) '清除非打印字符
|