VBA代码在Excel工作表中制作简易的点餐系统

视频点击查看


前言

用VBA代码,可以在Excel工作表中制作简易的点餐系统。


一、操作思路

1、制作工作表《菜单》和《房间号》,《菜单》工作表A列为菜单列表,双击菜单单元格,该菜单前□变■,并在最后一列计算选中菜单价格的合计数,再次双击选中的菜单,该菜单前■变□,该菜单取消;《房间号》工作表A列为所有可就餐房间号,B列为可用房间号,C列为已用房间号。
2、双击单元格点餐,工作表最后一行显示所选菜单的合计金额;
3、选择可用房间的下拉菜单,选择房间号,点击出单,自动添加以房间号命名的工作表名称,同时选中的菜单和单价及合计金额有新工作表中显示;若不选择房间号,直接点击出餐,会弹出Msgbox提示先选择房间号;
4、《房间号》工作表中的B列已用房间号消失,C列添加已用房间号;
5、已用房间加菜,先双击需添加有单,选择加餐房间号的下拉列表,点“加餐”按钮,所添加菜单在相应房间号的工作表行后列示;
6、点击“重置系统”,《房间号》工作表B列为所有房间号,C列数据为空。
本系统还可优化,如将结账的房间号做特别标记,计算当日、当月的营收,甚至可以做一个记账系统,将两个系统关联等,若有兴趣可以一试。

二、代码

1.菜单工作表内制作下拉菜单

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  '添加下拉菜单
  Dim RowscountB As Integer, RowscountC As Integer
  If Target.Row = 2 And Target.Column = 5 And Target.Count = 1 Then
    RowscountB = Sheets("房间号").Cells(Rows.Count, 2).End(xlUp).Row
    With Target.Validation      '下拉菜单
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=房间号!$B$2:$B$" & RowscountB
      .IgnoreBlank = True
    End With
  End If
  If Target.Row = 3 And Target.Column = 5 And Target.Count = 1 Then
    RowscountC = Sheets("房间号").Cells(Rows.Count, 3).End(xlUp).Row
    With Target.Validation   '下拉菜单
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:="=房间号!$C$2:$C$" & RowscountC
      .IgnoreBlank = True
    End With
  End If
End Sub

2.ThisWorkbook内选择菜单

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
 Dim Menu As String
 Dim Menutmp As String
 Dim MenuA As String
 Dim MenuB As String
 Dim MenutmpB As String
 Dim Rowscount As Integer
 Dim jiage As Integer
 Dim RowsMenu As Integer
 If ActiveSheet.Name = "菜单" Then
   Rowscount = ActiveSheet.[A1].End(xlDown).Row
   Menu = Cells(Target.Row, Target.Column).Value
   Menutmp = Left(Menu, 1)
   MenuA = Replace(Menu, Menutmp, "")
   RowsMenu = 0
   jiage = 0
   If Menutmp = "□" Then
     Menutmp = "■"
     Cells(Target.Row, Target.Column) = Menutmp & MenuA
   El
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值