模块内代码
Option Private ModulePublic strPath As StringSub GetFiles()Dim strFileName As String, k As LongWith Application.FileDialog(msoFileDialogFolderPicker)'用户选择文件夹路径If .Show Then strPath = .SelectedItems(1) Else Exit Sub'如果用户未选择文件夹则退出程序End WithIf Right(strPath, 1) <> "\" Then strPath = strPath & "\"Application.ScreenUpdating = False '取消屏幕刷新strFileName = Dir(strPath & "*.*")Cells(1, 1) = "目录": Cells(1, 2) = strPathCells(2, 1) = "原名称": Cells(2, 2) = "新名称"k = 2 '清除当前工作表A列数据Do While strFileName <> ""k = k + 1Cells(k, 1) = strFileNamestrFileName = Dir'第2次调用Dir函数,未使用任何参数,则同目录下的下一个文件名LoopEnd SubSub 重命名()Dim k As Integerk = 3Do While Cells(k, 1) <> ""If Cells(k, 2) <> "" Then Name strPath & Cells(k, 1) As strPath & Cells(k, 2)k = k + 1LoopEnd Sub
窗体内代码(两个按钮)
Public sheet_namePrivate Sub CommandButton1_Click()Sheets.Addsheet_name = ActiveSheet.NameActiveSheet.Columns("A:A").ColumnWidth = 20Call GetFilesCommandButton2.Enabled = TrueEnd SubPrivate Sub CommandButton2_Click()Sheets(sheet_name).ActivateCall 重命名Sheets(sheet_name).DeleteEnd SubPrivate Sub UserForm_Activate()CommandButton2.Enabled = FalseEnd Sub
代码是“勉强能用”,这里的无窗口是说没有列表框或者表格之类的。嗯,根据这个的性质,至少需要两个宏。为了避免不熟悉功能误用的话,还是得需要一个窗口。
他下一步的改造可以说是两个方向,第1个方向是把所有的模块都移动到窗口里面,把窗口的功能做得完备一点,并且修复一些bug。第2个方向是完全的无窗口化,依靠几个宏来分阶段完成功能。但代码会脆弱一些。容易错误使用。
