打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA 制作供应商增删改查 小工具 第3篇 代码细节说明

今天我们继续来记录一下供应商增删改查工具,

增加供应商这一部分的一些知识点。

上两篇主要讲了如何引用Sheet和如何制作交互的界面。

附上上两篇的链接,大家可以参考一下。

VBA 制作供应商增删改查 小工具 第1篇 Sheet的引用

VBA 制作供应商增删改查 小工具 第2篇 如何画出交互界面

其实这部分功能十分简单,只需要写几个函数就可以。

不推荐将所有功能都写在一个sub过程中,这样在后期维护的时候会显得比较麻烦。

推荐将每个功能拆解成一个个非常小的函数。

举个例子。比如增加供应商这个功能。就像下面这个动图一样的:

这边也只有涉及2个核心的函数。

一个是添加供应商函数。取名叫AddCompany

一个是合法验证的函数。取名叫CheckIfLegal

另外这边还加了一个Init的函数,来初始化刚开始的变量。

然后这边的按钮,我们需要为它写上click事件。

这里我们先记录一下添加这部分最核心的功能,

力求用一张图来表示清楚,大家可以保存下来以后参考。

AddCompany函数需要接受4个参数。

那这4个参数是从哪里来的呢?就是用户前台填写的4个参数。

所以这边需要定义一下这几个变量,

我选择定义在函数外边作为公有变量,

这样各个函数都可以访问这些值。

如图所示

其实这两部分结束之后,基础的功能就都有了。

只是这边我们需要添加一道验证,

因为不可能用户填了一个空的信息,我们也提示成功。

所以这边加了一个CheckIfLegal函数。

这边主要验证两个,一个是所填信息是否为空,另外一个是是否重复添加。

下面贴上具体的代码,大家可以复制测试一下:

按钮的代码

Option Explicit

Private Sub add_btn_Click()

Call Init

If CheckIfLegal(company_name, bank_name, bank_No, contract_No) = True Then

Call AddCompany(company_name, bank_name, bank_No, contract_No)

End If

End Sub

Private Sub detail_btn_Click()

Sheet2.Activate

End Sub

函数的代码

Option Explicit

Public company_name As String

Public bank_name As String

Public bank_No As String

Public contract_No As String

Public company_repeat As Range

Public Function AddCompany(company_name As String, bank_name As String, bank_No As String, contract_No As String)

Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = company_name

Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Value = bank_name

Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 2).Value = bank_No

Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 3).Value = contract_No

MsgBox ('供应商:' & company_name & Chr(13) & _

'开户行:' & bank_name & Chr(13) & _

'银行账号:' & bank_No & Chr(13) & _

'合同号:' & contract_No & Chr(13) & _

'【添加成功】')

End Function

Public Function CheckIfLegal(company_name As String, bank_name As String, bank_No As String, contract_No As String) As Boolean

If company_name = '' Then

MsgBox '请填写公司名', vbCritical, 'ERROR'

CheckIfLegal = False

Exit Function

ElseIf bank_name = '' Then

MsgBox '请填写开户银行', vbCritical, 'ERROR'

CheckIfLegal = False

Exit Function

ElseIf bank_No = '' Then

MsgBox '请填写开户账号', vbCritical, 'ERROR'

CheckIfLegal = False

Exit Function

ElseIf contract_No = '' Then

MsgBox '请填写合同号', vbCritical, 'ERROR'

CheckIfLegal = False

Exit Function

End If

If Application.WorksheetFunction.CountIf(company_repeat, company_name) > 0 Then

MsgBox '供应商信息已存在,请勿重复添加!', vbCritical, 'ERROR'

CheckIfLegal = False

Exit Function

End If

CheckIfLegal = True

End Function

Public Function Init()

company_name = Sheet1.company_tbx.Text

bank_name = Sheet1.bank_tbx.Text

bank_No = Sheet1.bankNum_tbx.Text

contract_No = Sheet1.contr_tbx.Text

Set company_repeat = Sheet2.Range(Sheet2.Cells(1, 1), Sheet2.Cells(1, 1).End(xlDown))

End Function

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA实用代码
老司机说:编写vba这些地方不注意,肯定要翻车
自学资料(Excel VBA)[收集整理3]
Excel使用VBA宏生成SQL语句
Excel 如何在VBA中使用VLOOKUP函数?
【转载】excel-vba应用示例之判断一个工作表(名)是否存在
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服