Excel
Application方法与属性
Set Wb = Application ' 当前的Excel对象
Set SheetObj = Wb.Sheets ' 不指定Sheet,则SheetObj为所有的sheet对象
Set SheetObj = Wb.Sheets(SheetName) ' 当前Excel中指定的工作表,可以传索引
SheetObj.Range(location).Value ' 获取范围内单元格内容,location="A1:F10" 返回数组 location="A1" 字符串
SheetObj.Range(location).Select ' 选中范围内的单元格
SheetObject.Cells(Row, Col).Value2 ' 获取单个单元格内容
SheetObj.UsedRange.Rows.Count ' 最大行数
SheetObj.UsedRange.Columns.Count ' 最大列数
SheetObj.Rows("1:10").Copy SheetObj.Rows(12) ' 复制1~12行数据到第12行的位置
SheetObj.Range("A7:B9").Height ' 获取指定区域的高度
SheetObj.Range("A7:B9").Width ' 获取指定区域的宽度
SheetObj.Name ' Sheet名称
' 朝A1位置写入大量的数据,DataArray为二维数组,Resize()指定二维数组的大小。(此方法效率远高于单个单元格写入)
SheetObj.Range("A1").Resize(RowNum, ColNum).Value = DataArray
Wb.Close Savechanges:=False ' 关闭Excel False:不保存 True:保存
' 打印当前Sheet,Copies:打印数量 Collate:对打印的文件进行排序 ActivePrinter:指定打印机的名称
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, ActivePrinter:=PrinterName
Application.DisplayAlerts = False '关闭特定的警告和消息窗口 False:禁止提示 True:允许提示
Application.AskToUpdateLinks = False '屏蔽Excel提示应用链接更新 False:关闭提示更新 True:正常模式
Application.Calculation = xlCalculationManual '自动计算,参数 xlCalculationAutomatic:自动计算 xlCalculationManual:关闭自动计算
Application.ScreenUpdating = False '屏幕刷新 False: 关闭刷新 True:开启刷新
Application.DisplayFullScreen = True '设置Excel窗口为全屏模式 True:全屏 False:默认大小
其他操作Excel的方法
Set Wb = GetObject(ExcelPath) ' 打开Excel(出现过GetObject处理Excel后,无法正常打开)
Set Wb = Workbooks.Open(ExcelPath) ' 打开Excel
VBA函数与变量
函数
Left(Str, 2) ' 从左往右取2个字符
Right(Str, 2) ' 从右往左取2个字符
Mid(Str,1, 2) ' 从左往右第1个字符,往后取2个字符串(包括第1位字符串)
Len(Str) ' 获取字符串大小
Ubound(Array) ' 获取一维数组最大下标
Lbound(Array) ' 获取一维数组最小下标 (因为下标可能是从0开始,也有可能是1或其他)
Trim(Str) ' 清除字符串两端空格
Replace(Str, "*", "-") ' 将目标字符串中的符号*,替换成符号-
Split(Str, "*") ' 对目标字符串中的符号*,进行分割。返回变量为一维数组
Chr(32) ' 将数字转换为ASCII码表中的内容
ChrW(10025) ' 将数字转换为指定的符号(键盘无法打出来的符号)参考:https://www.grogllc.com/unicodetable.html#
Array(1) ' 获取一维数组中第1个下标的Value
Array(1,1) ' 获取二维数组中第1行,第1个下标的value
Round(Double, 2) ' 保留两位小数
InStr(Str, "1") ' 查找目标字符串中是否存在1,不存在则返回0,存在则返回目标字符的下标
变量
' 创建字典类型变量
Dim Dict as Object
Set Dict= CreateObject("Scripting.Dictionary")
' 向字典添加key和与之对应的Value
Dict.Add "Key", "Value"
' 从字典取值
Dict("key")
控件
控件属性
UserForm1 ' 主窗体默认名称
UserForm1.Show ' 显示主窗体
控件.Enabled = True '设置控件 True:可以使用 False: 禁止使用
控件.Visible= True '设置控件 True:显示 False: 隐藏
TextBox.Text = "" ' TextBox控件写入文本
ListBox.AddItem("") ' ListBox控件添加项目
ListBox.RemoveItem(1) ' 以索引删除项目
ListBox.ListIndex ' 获取当前选中的项目索引
ListBox.List ' 获取ListBox控件内容,返回数组
CommandButton.Caption = "" ' 设置控件名称
控件事件
' CheckBox控件,选中后触发
Private Sub CheckBox_Change()
End Sub
' CommandButton按钮,点击后触发
Private Sub CommandButton_Click()
End Sub
' TextBox控件,输入文本后触发
Private Sub TextBox_Change()
End Sub
' 窗体关闭事件
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
End Sub
' Excel关闭事件
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
' 当前Sheet打开后触发该事件
Private Sub Worksheet_Activate()
End Sub
' 窗体打开后触发事件
Private Sub UserForm_Activate()
End Sub
配合控件使用的常用函数
' 选择文件夹
Public Function SelectFolder()
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False '单选择
.Title = "请选择文件夹"
.InitialFileName = "C:\"
If .Show = -1 Then 'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。
SelectFolder = .SelectedItems(1)
End If
End With
End Function
' 选择文件
Public Function SelectFile(Hint, FileType)
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False '单选择
.Filters.Clear '清除文件过滤器
.Filters.Add Hint, FileType
.Filters.Add "All Files", "*.*" '设置两个文件过滤器
If .Show = -1 Then 'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。
SelectFile = .SelectedItems(1)
End If
End With
End Function
如存在不正确的地方,请指正。