1. Excel 默认禁用宏,需手动启用

vba01

  1. 查看宏

  1. 写个简单宏:弹窗
Sub Hello()
    MsgBox ("Hello,world!")
End Sub
  1. 将该宏的执行添加到菜单栏

  1. 点击刚刚添加的笑脸小图标,会执行刚刚的宏代码,进而弹窗

  1. 修改某个 sheet 的名字
Sub RenameWorksheets()
    Worksheets("Sheet1").Name = "New Name"
End Sub
  1. 修改所有 sheet 的名字:for 循环的使用,这里 workSheetItem 是变量,可任意
Sub RenameWorksheets()
    For Each workSheetItem In Worksheets
        workSheetItem.Name = workSheetItem.Name & "New Name"
    Next
End Sub
  1. 用当前 sheet 的 B1 单元格内容作为当前 sheet 的名字
Sub Test()
    For Each workSheetItem In Worksheets
        workSheetItem.Name = workSheetItem.Range("B1").Value
    Next
End Sub
  1. 判空处理:<> 意思是不等于,双引号指空文本,if 和 end if 之间代码是符合当前条件的可执行语句
Sub Test()
    For Each workSheetItem In Worksheets
        If workSheetItem.Range("B1").Value <> "" Then
            workSheetItem.Name = workSheetItem.Range("B1").Value
        End If
    Next
End Sub
  1. 定义变量:使用 Dim 定义,As 后面是 VBA 的数据类型
Sub Test()
    Dim workSheetItem As Worksheet
    
    For Each workSheetItem In Worksheets
        If workSheetItem.Range("B1").Value <> "" Then
            workSheetItem.Name = workSheetItem.Range("B1").Value
        End If
    Next
End Sub
  1. 创建图表:

ActiveSheet 指当前所在的 sheet,(100,50,300,200)指左上角坐标为(100,50),图标长为 300,宽为 200,With…End With 构造来对该对象执行操作

Sub Chart()
    Dim myChart As ChartObject
    Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 300, 200)
    
    With myChart
        .Chart.SetSourceData Source:=Selection
    End With
    
End Sub

随便在 A1 至 A5 写几个数字,选中该区域(=Selection),执行宏,效果如下(默认是条形图)

我们还可以让输出为饼图,注意 ChartType

Sub Chart()
    Dim myChart As ChartObject
    Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 300, 200)
    
    With myChart
        .Chart.SetSourceData Source:=Selection
        .Chart.ChartType = xlPie
    End With
    
End Sub

或是指定修改 A4 的值为 8,此时单元格和图表都会变成 8

Sub Chart()
    Dim myChart As ChartObject
    Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 300, 200)
    Application.ActiveSheet.Range("a4").Value = 8
    
    With myChart
        .Chart.SetSourceData Source:=Selection
        .Chart.ChartType = xlPie
    End With
    
End Sub

或是让用户手动修改 A5 的值

Sub Chart()
    Dim myChart As ChartObject
    Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 300, 200)
    Application.ActiveSheet.Range("a4").Value = 8
    
    myInput = InputBox("Please type a number:")
    Application.ActiveSheet.Range("a5").Value = myInput
    
    With myChart
        .Chart.SetSourceData Source:=Selection
        .Chart.ChartType = xlPie
    End With
    
End Sub

修改为 100 后输出如下图

  1. 用户窗体:与用户交互

点击 插入 - 用户窗体,我们以插入一个 button 按钮为例

鼠标拖拽到编辑区域

点击按钮,右键,选择 - 查看代码

修改代码如下,记住 Run 方法里传入的是已经写好的宏的名字,就是上面的 Hello

Private Sub CommandButton1_Click()
    Run ("Hello")
End Sub

此时我们点击运行那个小三角号就可以看到效果了

附录:

本文转自:MSDN

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Jalen Chu 微信支付

微信支付

Jalen Chu 支付宝

支付宝

Jalen Chu 公众号

公众号