快速浏览
往期合集:【2023年3月】【2023年4月】【2023年5月】【2023年6月】【2023年7月】
内容提要
大家好,我是冷水泡茶,今天在论坛上看到一个求助贴:
他的明细表是这样的:
我们一起来看一看吧(文末有视频演示)。
基本思路
1、设置一个用户窗体,在上面放上“材料录入表”表头字段对应的文本框或复合框控件,供填写或选择录入数据。
2、把“材料录入表”数据读入数组,以备提取“材料名称”、“规格程式”、“单位”等数据,供录入时选择,如果是新的项目,则手工输入,在下次录入时即可选取。
3、点“保存”按钮,把数据写入“材料录入表”。
程序代码
1、在“首页“添加”入库“、“出库”命令按钮:
2、“入库”、“出库”按钮代码:
Private Sub CmdMaterialIn_Click()
InOrOut = "入库"
UserForm1.Show 0
End Sub
Private Sub CmdMaterialOut_Click()
InOrOut = "出库"
UserForm1.Show 0
End Sub
(1)InOrOur,是一个Public变量,记录出入库的类型。
(2)我们点入库,InOrOur=“入库”,点出库,InOrOur=“出库”,然后显示用户窗体UserForm1。
(3)UserForm1.Show 0,这后面的0,表示“无模式”,可以操作表格。如果不加0,或加1,则为“有模式”,不可操作表格。所以,在录入数据的时候,如果要查看、复制其他表格数据的,窗体要显示为“无模式”。
Private Sub CmdSwitch_Click()
If InOrOut = "入库" Then
InOrOut = "出库"
Else
InOrOut = "入库"
End If
Unload Me
UserForm1.Show 0
End Sub
7、模块1:自定义函数Pxy
Function Pxy(arr() As Variant, searchValue As Variant) As Long
t = LBound(arr)
t = 1 - t
For i = LBound(arr) To UBound(arr)
If arr(i) = searchValue Then
Pxy = i + t
Exit Function
End If
Next
Pxy = -1 ' 如果未找到值,则返回 -1
End Function
总结
1、通过针对不同按钮,让同一个窗体显示不同内容,实现一个窗体两用、甚至多用。
2、通过表头字段数组,结合自定义定位函数,我们不用去数某个字段是在第几行或第几列,特别是在表头字段特别多的情况下,或者是字段顺序可能会发生变化的情况下,这种方法是非常有用的。
视频演示
---End---
喜欢就点个赞、点在看、留个言呗!分享一下更给力!感谢!
需要示例文件的朋友请稍微留意一下:
写文不易,分享免费,请关注、点赞、点在看、点广告、留言,如果不愿走上面的“流程”,您可以直接打赏,万分感谢!
联系客服