vba多个button响应一个事件_VBA 制作供应商增删改查 小工具 第1篇

98e58d918fa18352923674ed6372a9d5.png

之前写了VBA入门只需3天的系列文章。总计3篇。相信大家看过之后就可以完成批量合并100个Sheet这样的需求了。以下是原贴的链接。大家可以参考。

VBA入门只需3天 Range的用法小记(第一天)

VBA入门只需3天 VBA中的相对路径(第二天)

VBA入门只需3天 一键合并多个sheet(第3天)

接下来的一段时间,预计会制作一款供应商增删改查的小工具,方便自己平时在工作的时候管理供应商。并且后期这些供应商将会为我们提供打印、导出账单的数仓功能。

今天晚上刚刚构思了新增供应商的界面。后期会更新改供应商,查询供应商和删除供应商的界面。

1feb24043965747367930d6004cf1a4e.gif

这边的思路是每个信息都必须要填写,如果没有填写则不能添加成功。

另外如果供应商重复,则无法添加。

界面是用ActiveX控件画出来的。底色是单元格的颜色。

两个按钮添加了button_click事件。由于中间还是涉及到了比较多的细碎点,所以今天没办法一下子把所有内容都穷尽,只能分开一部分一部分记录。

今天我们来说说如何引用Sheet

如果所有的操作都是在当前的Sheet完成的话,是不需要引用Sheet的。

举个例子,当前有Sheet1和Sheet2两个Sheet,假设当前选中的是Sheet2,我们输入:Range("A1") = "Hello World",那这两个Sheet中,哪个单元格会被赋值为Hello World呢。答案是Sheet2单元格。

fe6919f291e572571f9484ce02d00f90.png

当单元格前没有Sheet的时候,引用的默认都是当前的Sheet。

因此,当我们处在Sheet2,又希望Sheet1的A1单元格被赋值为Hello World时,代码就应该这样被修改:Sheet1.Range("A1") = "Hello World"

以下来介绍一下,引用Sheet的所有方法。

1、使用工作表的代码名称

使用工作表的代码名称,大家可以使用Alt+F11打开VBA编辑器,

左侧就是工作表的代码名称了。

b8751c25d7c4ee0bcf83873da9ac65f0.png

不管我们如何修改Sheet的名称,在代码名称中,他们仍然是Sheet1、Sheet2。使用代码名称来引用Sheet是比较好用的方法,适用于我们知道每个Sheet的内容,并且Sheet名称不是需要判断的场景。

2、使用工作表的索引号

使用工作表的索引号,写法是用一对括号把数字括起来,参考如下:

Sheets(1).Range("A1") = "Hello World"

请注意是Sheets(1)而不是Sheet(1),如果没有s,是会报错的。

而索引号的顺序,就是Excel下方Sheet导航栏展示的顺序。

112f3e125b975292c3ca2fff3fc9ca24.png

大家可以看代码演示,索引号是2,那就是总左至右第二个Sheet,即使这个Sheet的名称是Sheet1。

927dafcba2ed7fbe2f3139772080fcc6.png

3、使用工作表名称来引用

使用工作表的名称来引用,顾名思义,就是工作表叫什么名称,引用的时候就如何使用。使用方法如下:

Sheets("我的名称").Range("A1") = "Hello World"

如图:

ef8315726992dbc44454bf75fac94f3e.png

当我们知道如何引用不同Sheet的数据的时候,

我们就可以自由的操作,将我们的数据存放到对应的地方。

明天,我们将对ActiveX的控件进行说明,以及我们要如何设置我们的结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是用VBA编写一个简单的数据管理系统的详细步骤,并附上代码示例,实现姓名、电话、性别、地址的增删改查功能: 1. 打开Excel,新建一个工作簿,将其保存为宏启用的Excel工作簿(*.xlsm)。 2. 在工作簿中新建一个工作表作为数据表格,将需要管理的数据按照一定的规则排列在表格中,表格中包含姓名、电话、性别、地址四个字段。 3. 在Excel中打开VBA编辑器(快捷键为Alt + F11),在新建的工作簿中新建一个模块。 4. 在模块中编写VBA代码,实现数据管理系统的功能,包括:查询、添加、删除、修改等操作。 5. 针对每个功能,编写相应的代码实现其具体功能。 6. 在代码中添加必要的注释,方便自己或他人修改和理解代码。 7. 将VBA代码保存,关闭VBA编辑器,返回Excel界面。 8. 在Excel中打开数据表格,运行VBA代码,测试数据管理系统的各项功能。 9. 根据自己的需要,修改和完善数据管理系统的功能。 10. 最后,将数据管理系统保存,备份并使用。 下面是一个示例代码,实现姓名、电话、性别、地址的增删改查功能: ```VBA Sub AddData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("数据表格") '数据表格的名称 Dim lastRow As Long lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行的行号 ws.Cells(lastRow + 1, 1).Value = InputBox("请输入姓名:") '添加姓名 ws.Cells(lastRow + 1, 2).Value = InputBox("请输入电话:") '添加电话 ws.Cells(lastRow + 1, 3).Value = InputBox("请输入性别:") '添加性别 ws.Cells(lastRow + 1, 4).Value = InputBox("请输入地址:") '添加地址 MsgBox "添加成功!" End Sub Sub DeleteData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("数据表格") '数据表格的名称 Dim name As String name = InputBox("请输入要删除的姓名:") Dim findRow As Range Set findRow = ws.Range("A:A").Find(what:=name, LookIn:=xlValues, lookat:=xlWhole) '查找姓名所在的行 If Not findRow Is Nothing Then '如果找到了对应的行 findRow.EntireRow.Delete '删除该行 MsgBox "删除成功!" Else MsgBox "未找到要删除的数据!" End If End Sub Sub UpdateData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("数据表格") '数据表格的名称 Dim name As String name = InputBox("请输入要修改的姓名:") Dim findRow As Range Set findRow = ws.Range("A:A").Find(what:=name, LookIn:=xlValues, lookat:=xlWhole) '查找姓名所在的行 If Not findRow Is Nothing Then '如果找到了对应的行 ws.Cells(findRow.Row, 2).Value = InputBox("请输入修改后的电话:") '修改电话 ws.Cells(findRow.Row, 3).Value = InputBox("请输入修改后的性别:") '修改性别 ws.Cells(findRow.Row, 4).Value = InputBox("请输入修改后的地址:") '修改地址 MsgBox "修改成功!" Else MsgBox "未找到要修改的数据!" End If End Sub Sub QueryData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("数据表格") '数据表格的名称 Dim name As String name = InputBox("请输入要查询的姓名:") Dim findRow As Range Set findRow = ws.Range("A:A").Find(what:=name, LookIn:=xlValues, lookat:=xlWhole) '查找姓名所在的行 If Not findRow Is Nothing Then '如果找到了对应的行 MsgBox "姓名:" & findRow.Value & vbCrLf & "电话:" & ws.Cells(findRow.Row, 2).Value & vbCrLf & "性别:" & ws.Cells(findRow.Row, 3).Value & vbCrLf & "地址:" & ws.Cells(findRow.Row, 4).Value '显示查询结果 Else MsgBox "未找到要查询的数据!" End If End Sub ``` 以上是一个简单的示例代码,实现姓名、电话、性别、地址的增删改查功能,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值