创建工作薄
Sub 创建工作薄()Dim wb As WorkbookDim sh As WorksheetSet wb = Workbooks.Addwb.SaveAs Filename:="创建工作薄.xlsx"'Set sh = wb.ActiveSheet '这个是因为知道,创建workbooks时会自带3个sheetSet sh = wb.Worksheets.AddWith sh.Name = "new".Range("a1:d1") = Array("ID", "属性1", "属性2", "属性3")End WithActiveWorkbook.Save '保存文件End Sub
获取路径
返回应用程序完整路径Application.Path返回当前工作薄的路径ThisWorkbook.Path返回当前默认文件路径:Application.DefaultFilePathApplication.ActiveWorkbook.Path 只返回路径Application.ActiveWorkbook.FullName 返回路径及工作簿文件名Application.ActiveWorkbook.Name 返回工作簿文件名
判断文件(夹)是否存在
方法一Function IsFileExists(ByVal strFileName As String) As BooleanIf Dir(strFileName, 16) <> Empty ThenIsFileExists = TrueElseIsFileExists = FalseEnd IfEnd FunctionSub Run()If IsFileExists("D:\vba\abc.txt") = True Then' 文件存在时的处理MsgBox "文件存在!"Else' 文件不存在时的处理MsgBox "文件不存在!"End IfEnd Sub方法二Function IsFileExists(ByVal strFileName As String) As BooleanDim objFileSystem As ObjectSet objFileSystem = CreateObject("Scripting.FileSystemObject")If objFileSystem.fileExists(strFileName) = True ThenIsFileExists = TrueElseIsFileExists = FalseEnd IfEnd FunctionSub Run()If IsFileExists("D:\vba\abc.txt") = True Then' 文件存在时的处理MsgBox "文件存在!"Else' 文件不存在时的处理MsgBox "文件不存在!"End IfEnd Sub方法三Public Function FileFolderExists(strFullPath As String) As BooleanOn Error GoTo EarlyExitIf Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = TrueEarlyExit:On Error GoTo 0End FunctionPublic Sub TestFolderExistence()If FileFolderExists("c:/windows/") ThenMsgBox "指定的文件夹存在!"ElseMsgBox "指定的文件夹不存在!"End IfEnd SubPublic Sub TestFileExistence()If FileFolderExists("d:/Book1.xls") ThenMsgBox "指定的文件存在!"ElseMsgBox "指定的文件不存在!"End IfEnd Sub
删除文件(夹)
删除文件kill filepath删除文件夹rmdir dirpath
获取当前日期
Sub run()Dim idate as dateidate=Format(now,"yyyy/m/d")MsgBox "当前日期为:" & idateEnd Sub
获取变量类型
(1)、TypeName()函数
用来返回变量或对象类型的字符串。
(2)、VarType()函数
用来返回用数字表示的变量或对象类型。不同的是,对于不同的对象,它统一返回对象类型,而不是像TypeName函数一样,返回不同的对象字符描述。
清除单元格内容、格式、批注
Range(“a1:d10”).ClearContents ‘清除A1:D10区域的公式/值
Range(“a1:d10”).Clear’全清(值,格式,批注)
Range(“a1:d10”).clearformats ‘清除格式
UsedRange用法
关于UsedRange属性,你想要的都在这里
(1)已用单元格区域的第一行行序数:UsedRange.Row
(2)已用单元格区域的占用的行数:UsedRange.Rows.Count
(3)已用单元格区域的最后一行的列序数: UsedRange .Row+ UsedRange. Rows.Count-1 (重要)
(4)已用单元格区域的第一列列序数:UsedRange.Column
(5)已用单元格区域的占用的列数:UsedRange.Columns.Count 已用单元格区域的最后一列的列序数:UsedRange.Column+UsedRange.Columns.Count-1,UsedRange.Areas.Count>1除外(Areas(index)也返回的是Range对象)
(6)已用单元格区域的占用的总单元格数:UsedRange.Cells.Count或 Me.UsedRange.Count,返回的只是“行数×列数”,所以无论内部有无合并单元格,此值不受影响。
(7)语句Activesheet.UsedRange.Address返回当前工作表已使用单元格区域的地址
整数转字符串
个人宏工作簿
把宏保存在Excel自动创建的文件中(后缀名为.xlsb),当打开其他工作薄是也能看到之前创建的宏。方便共享实现调用
数据类型
- Byte:1字节,范围:0~255
- Boolean:2字节,范围:True/FALSE
- Integer:2字节,范围:-32768~32767
- Long:4字节,范围:-2147483648~2147483647
- Single:4字节,范围:负:-3.40E38~-1.40E-45;正:1.40E-45~3.40E38
- Double:8字节,范围:-1.79E308~-4.9E-324,4.94E-324~1.79E308
- Currency:8字节,范围:-922337203685477~922337203685477
-
注释快捷键
设置注释:Alt + S
- 取消注释:Alt + Z
VBA删除整个文件夹(包括下面的文件及子文件夹)
方法一:
Sub mydel()
Shell “cmd.exe /c rd/s/q d:\test\temp\”
Shell “cmd.exe /c md d:\test\temp”
End Sub
方法二:请小心使用以下代码!!后果自负
Sub DelAll()
strpathname = “D:\”
CreateObject(“scripting.filesystemobject”).getfolder(strpathname).Delete True
End Sub
可参考的FileSystemObject 对象相关操作说明(虽然是js,但也可参考)
列号↔字母(转换)
Sub test3()MsgBox ConvertToLetter(27)End Sub'列号转字母Function ConvertToLetter(iCol As Integer) As StringDim iAlpha As IntegerDim iRemainder As IntegeriAlpha = Int(iCol / 27)iRemainder = iCol - (iAlpha * 26)If iAlpha > 0 ThenConvertToLetter = Chr(iAlpha + 64)End IfIf iRemainder > 0 ThenConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)End IfEnd Function'字母转列号Sub ConverToNum()Dim x as stringx = "AA"Range(x & cstr(1)).columnEnd Sub
