一、Excel VBA 表格的操作
1. Excel表格的指定以及表格属性的设置
Sub main() '把表格B2的值改为"VBA Range和Cells函数" Range("B2").Value = "VBA Range和Cells函数" '把D4:E6范围内的每一个表格的值都改为"Excel VBA" Range("D4:E5").Value = "Excel VBA" End Sub Sub main() Cells(2, 2).Value = "VBA Range和Cells函数" Cells(4, 4).Value = "Excel VBA" Cells(4, 5).Value = "Excel VBA" Cells(5, 4).Value = "Excel VBA" Cells(5, 5).Value = "Excel VBA" End Sub Sub main() 'Worksheets("工作表名称").Activate Worksheets("Sheet2").Activate End Sub Sub main() Worksheets("Sheet2").Activate Worksheets("Sheet2").Range("D4").Value = "Excel VBA" Worksheets("Sheet2").Cells(5, 5).Value = "Excel VBA" End Sub Sub main() Worksheets("Sheet2").Activate '修改表格的值 Worksheets("Sheet2").Range("D4").Value = "Excel VBA" '修改表格的宽度 Worksheets("Sheet2").Range("D4").ColumnWidth = 20 '修改表格的高度 Worksheets("Sheet2").Range("D4").RowHeight = 30 '修改表格的文字颜色为红色 Worksheets("Sheet2").Range("D4").Font.ColorIndex = 3 '修改表格的背景颜色为绿色 Worksheets("Sheet2").Range("D4").Interior.ColorIndex = 4 End Sub Sub main() Worksheets("Sheet2").Activate '修改表格的值 Worksheets("Sheet2").Range("D4").Value = "Excel VBA" '修改表格的宽度 Worksheets("Sheet2").Range("D4").ColumnWidth = 20 '修改表格的高度 Worksheets("Sheet2").Range("D4").RowHeight = 30 '修改表格的文字颜色为红色 Worksheets("Sheet2").Range("D4").Font.ColorIndex = 3 '修改表格的背景颜色为绿色 Worksheets("Sheet2").Range("D4").Interior.ColorIndex = 4 End Sub ‘功能同上 Sub main() With Worksheets("Sheet2") .Activate .Range("D4").Value = "Excel VBA" .Range("D4").ColumnWidth = 20 .Range("D4").RowHeight = 30 .Range("D4").Font.ColorIndex = 3 .Range("D4").Interior.ColorIndex = 4 End With End Sub ‘功能同上 Sub main() With Worksheets("Sheet2") .Activate With .Range("D4") .Value = "Excel VBA" .ColumnWidth = 20 .RowHeight = 30 .Font.ColorIndex = 3 .Interior.ColorIndex = 4 End With End With End Sub
2. Excel表格范围的指定
'Rang params Sub main() Range("A3:D5").Value = "Excel VBA入门" '或者 Range("A3", "D5").Value = "Excel VBA入门" End Sub 'Cells params Sub main() Range(Cells(3, 1), Cells(5, 4)).Value = "Excel VBA入门" End Sub
3. Excel行的选择
Sub setRowValueAndBgColor() Range("B2:D3").EntireRow.Value = "Excel VBA" Range("B2:D3").EntireRow.Interior.ThemeColor = 5 End Sub Sub setRowValueAndBgColor() Range(Cells(2, 2), Cells(3, 4)).EntireRow.Value = "Excel VBA" Range(Cells(2, 2), Cells(3, 4)).EntireRow.Interior.ThemeColor = 5 End Sub Sub hideRowAndSetRowValue() Range("A2").EntireRow.Hidden = True Range("A4").EntireRow.Value = "Excel VBA" End Sub
4. Excel列的选择
Sub setColumnValueAndBgColor() Range("B2:D3").EntireColumn.Value = "Excel VBA" Range("B2:D3").EntireColumn.Interior.ThemeColor = 5 End Sub Sub setColumnValueAndBgColor() Range(Cells(2, 2), Cells(3, 4)).EntireColumn.Value = "Excel VBA" Range(Cells(2, 2), Cells(3, 4)).EntireColumn.Interior.ThemeColor = 5 End Sub
Sub hideColumnAndSetRowValue()
Range("A2").EntireColumn.Hidden = True
Range("A4").EntireColumn.Value = "Excel VBA"
End Sub
5. Excel表格的删除
方法名 | 参数 | 常量 | 说明 |
---|---|---|---|
Delete | Shift | xlShiftToLeft | 向左移动 |
xlShiftUp | 向上移动 |
'表格的删除 Sub deleteCells() '删除当前工作表的表格范围B1-D3(行数等于列数,剩余表格向上移动) Range(Cells(1, 2), Cells(3, 4)).Delete End Sub Sub deleteCells() '删除当前工作表的表格范围C1-D2(行数大于列数,剩余表格向左移动) Range("C1:D2").Delete End Sub '行和列的删除 Sub deleteRow() '剩余表格整体向上移动 Range(Cells(1, 2), Cells(3, 4)).EntireRow.Delete End Sub Sub deleteColumn() '剩余表格整体向左移动 Range(Cells(1, 2), Cells(3, 4)).EntireColumn.Delete End Sub
6. Excel表格内容的清除
方法 | 说明 |
---|---|
ClearContents | 清除表格内容 |
ClearFormats | 清除表格格式 |
ClearComments | 清除表格注释 |
ClearOutline | 清除表格组合 |
Clear | 清除所有(内容、格式、注释、组合) |
Sub clearCells() '清除当前工作表B1-D3范围表格的所有设置 Range(Cells(1, 2), Cells(3, 4)).Clear End Sub Sub clearCellContents() '清除当前工作表A1-D4范围表格的内容(表格的其余设置不发生改变) Range("A1:D4").ClearContents End Sub Sub clearCellComments() '清除Sheet2工作表所有表格的注释 Worksheets("Sheet2").Cells.ClearComments End Sub Sub clearCellFormat() '清除当前工作表A1-D4表格的格式 Range("A1:D4").ClearFormats End Sub Sub clearCellOutline() '当前工作表的所有组合 Cells.ClearOutline End Sub
7. Excel表格的插入
方法名 | 参数 | 常量 | 说明 |
---|---|---|---|
Insert | Shift | xlShiftToLeft | 向左移动 |
xlShiftUp | 向上移动 |
8. Excel表格的拷贝和粘贴
方法名 | 参数 | 说明 |
---|---|---|
Copy | Destination | 指定粘贴位置的Range对象 |
Sub copyCells() '把B1-D3拷贝到F5-H7 Range(Cells(1, 2), Cells(3, 4)).Copy Destination:=Cells(5, 6) End Sub Sub copyCells() '把B1-D3拷贝到F5-H7 Range("B1:D3").Copy Destination:=Range("F5") End Sub Sub copyCells() '把当前工作表的B1-D3拷贝到F5-H7 ActiveSheet.Range("B1:D3").Copy Destination:=Range("F5") End Sub Sub copyCells() '把工作表Sheet1的B1-D3拷贝到工作表Sheet2的F5-H7 Worksheets("Sheet1").Range("B1:D3").Copy Destination:=Worksheets("Sheet2").Range("F5") End Sub
9. Excel表格的剪切和粘贴
方法名 | 参数 | 说明 |
---|---|---|
Cut | Destination | 指定粘贴位置的Range对象 |
Sub copyCells() '把B1-D3剪切到F5-H7 Range(Cells(1, 2), Cells(3, 4)).Cut Destination:=Cells(5, 6) End Sub Sub copyCells() '把B1-D3剪切到F5-H7 Range("B1:D3").Cut Destination:=Range("F5") End Sub Sub copyCells() '把当前工作表的B1-D3剪切到F5-H7 ActiveSheet.Range("B1:D3").Cut Destination:=Range("F5") End Sub Sub copyCells() '把工作表Sheet1的B1-D3剪切到工作表Sheet2的F5-H7 Worksheets("Sheet1").Range("B1:D3").Cut Destination:=Worksheets("Sheet2").Range("F5") End Sub
10. VBA单元格数据有效性设置
Sub addValidation() With Range("A1:A20").Validation .Delete ' 删除现在的有效数据设置 ' 设置新的有效数据数据(男,或者女) .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="男,女" .InCellDropdown = True ' 显示下拉框 .ShowError = True ' 提示输入错误 .IgnoreBlank = True ' 空白可 End With End Sub Sub addValidation() With Range("B2").Validation .Delete ' 删除现在的有效数据设置 ' 设置新的有效数据数据(18-60之内的数字) .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="18", Formula2:="60" .InCellDropdown = False ' 隐藏下拉框 .ShowError = True ' 提示输入错误 .IgnoreBlank = True ' 空白可 End With End Sub