注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

火星号

new world,new start,new life

 
 
 

日志

 
 

VBA用户窗体(VBA的第一个程序)  

2012-05-11 22:54:53|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
窗体模块
ALT+F11打开VBE窗口然后点击插入-用户窗体
具体控件的插入不再赘述。

第一步 激活窗体
Private Sub chktipincluded_Click()
If chktipincluded = True Then
  lbltipamount.Enabled = True
  txttipamount.Enabled = True
Else
 lbltipamount.Enabled = False
 txttipamount.Enabled = False
End If

End Sub



Private Sub optbilltoroom_Click()
If optbilltoroom = True Then
   lblcardtype.Enabled = False
   lstcardtype.Enabled = False
   lblcardno.Enabled = False
   txtcardno.Enabled = False
   Lblexpires.Enabled = False
   txtexpires.Enabled = False
End If

End Sub

Private Sub optcash_Click()
If optcash = True Then
   lblcardtype.Enabled = False
   lstcardtype.Enabled = False
   lblcardno.Enabled = False
   txtcardno.Enabled = False
   Lblexpires.Enabled = False
   txtexpires.Enabled = False
End If

End Sub

Private Sub optcheck_Click()
If optcheck = True Then
   lblcardtype.Enabled = False
   lstcardtype.Enabled = False
   lblcardno.Enabled = False
   txtcardno.Enabled = False
   Lblexpires.Enabled = False
   txtexpires.Enabled = False
End If

End Sub

Private Sub optcreditcard_Click()
If optcreditcard = True Then
   lblcardtype.Enabled = True
   lstcardtype.Enabled = True
   lblcardno.Enabled = True
   txtcardno.Enabled = True
   Lblexpires.Enabled = True
   txtexpires.Enabled = True
End If

End Sub



Private Sub UserForm_Activate()

txtdate.Text = Format(Now, "mm/dd/yy")
With lstexpensetype
 .RowSource = "expenses"
 .ListIndex = 0
End With
With lstcardtype
.RowSource = "CardType"
.ListIndex = 0
End With

' 判断条件的成立性


 
End Sub
Private Sub cmdsave_Click()

  If Val(txtroomno.Text) < 101 Or Val(txtroomno.Text) > 730 Then
    MsgBox "invalid room number, 101 to 730"
    txtroomno.SetFocus
    Exit Sub
  End If
  
  If txtguestname.Text = "" Then
  MsgBox "Please input guest's name"
  txtguestname.SetFocus
  Exit Sub
  End If
  
  
  If chktipincluded.Value = True Then
    If txttipamount = "" Then
       MsgBox "if tip is included you must enter amount"
       txttipamount.SetFocus
       '焦点插入到对象实例中
       Exit Sub
    End If
   End If
   
   If txtamount.Text = "" Then
      MsgBox "please input amount"
      txtamount.SetFocus
      Exit Sub
   End If
   
   If IsNumeric(txtamount.Text) = False Then
      MsgBox "amount must be a number"
      txtamount.SetFocus
      Exit Sub
    End If
    
    If txtdate.Text = "" Then
      MsgBox "you must enter a date"
      txtdate.SetFocus
      Exit Sub
    End If
    
    If optcreditcard.Value = True Then
      If txtcardno = "" Then
      MsgBox "please input a card number"
      txtcardno.SetFocus
      Exit Sub
      End If
    End If
    
    If txtexpires.Text = "" Then
      MsgBox "Please enter the card's expiration date"
      txtexpires.SetFocus
      Exit Sub
    End If
  
    ' Unload Me
    
  '下面将输入的数值输出保存在其他工作簿中
  Worksheets("guest expense").Activate
  Range("A2").Select
  
  If Range("A2").Value = "" Then
     Range("A2").Activate
  Else
     Range("A2").CurrentRegion.Select
     ActiveCell.Offset(Selection.Rows.Count, 0).Activate
  End If
  
  With ActiveCell
     .Value = txtroomno.Text
     .Offset(0, 1).Value = txtguestname.Text
     .Offset(0, 2).Value = lstexpensetype.Text
     .Offset(0, 3).Value = txtamount.Text
     .Offset(0, 4).Value = txtdate.Text
     
    If chktipincluded.Value = True Then
      .Offset(0, 5).Value = txttipamount.Text
    End If
  
    If optbilltoroom.Value = True Then
      .Offset(0, 6).Value = "Room"
     
    ElseIf optcash.Value = True Then
      .Offset(0, 6).Value = "cash"
    ElseIf optcheck.Value = True Then
      .Offset(0, 6).Value = "check"
    ElseIf optcreditcard.Value = True Then
      .Offset(0, 6).Value = "credit"
      .Offset(0, 7).Value = lstcardtype.Text
      .Offset(0, 8).Value = txtcardno.Text
      .Offset(0, 9).Value = txtexpires.Text
    End If
 End With
 '输入cancel按钮代码
End Sub
 Private Sub cmdcancel_Click()
   Unload Me
   
 End Sub


 ‘用户窗体设置好了然后需要显示用户窗体  
’类似于插入用户窗体,VBE下点击插入-模块
Sub showguestexpenses()
frmguestexpenses.Show
End Sub

'最后一步是设置一个按钮然后将引用第二步产生的宏,会带excel的sheet中,然后在VBE中点击插入-控件
然后右键-指定宏,选择showguestexpense即可。这样就可以点击run按钮,直接运行GUI界面了。
详细参考附件
http://115.com/file/c2k93r5w#窗体控件0509.xlsm

   
     
     
     
     
  
  
  
  

  评论这张
 
阅读(1609)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017