我是VBA编程的新手,但我已经开始学习基础知识了。我是期货市场的交易员,所以我正在建立一个用户形式来协助记录保存。
带有“保存”按钮的用户表单似乎正确填充了相关的单元格。我的问题是命令按钮:
单击时,“保存”按钮将:
命令按钮命名为Long
,Short
,Yes
,No
,以及Filters
框架中的按钮等。我试图这样做:
FALSE
,直到单击按钮,然后它应该更改为TRUE
。例如,如果我单击Long,当前工作表上没有数据,所以D3
(在Long
标题下)应该是TRUE
。然后,当我输入一组不同的数据,并且不点击Long
时,它应该显示FALSE
或许D4
(下一行因为数据将在前一行......等等)。
我没有成功通过在线研究解决这个问题。我很感激帮助学习编写1个命令按钮,然后其余的将很容易。
我的命名惯例是:
tbMkt
,tbEntryPrice
,tbStopLoss
,tbTargetPrice
等。btnLong
,btnShort
,btnYesTrend
,btnNoTrend
,btnFilter1
,btnFilter2
,btnFilter3
。附加信息:代码
Option Explicit
Public myGlobalVar As Boolean
Private Sub btnClose_Click()
Me.Hide
Unload Me
End Sub
Private Sub btnLong_Click()
myGlobalVar = True
End Sub
Private Sub btnSave_Click()
Me.Hide
If tbMkt.Value = "" Or tbEntry = "" Or tbStopLoss = "" Or tbTarget = "" Then
If MsgBox("Form is not complete. Do you want to continue?", vbQuestion + vbYesNo) <> vbYes Then
Exit Sub
End If
End If
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1, 0).Select
ActiveCell.Value = tbMkt.Value
ActiveCell.Offset(0, 1).Value = tbDate.Value
ActiveCell.Offset(0, 2).Value = tbTime.Value
ActiveCell.Offset(0, 3).Value = btnLong.Visible
ActiveCell.Offset(0, 5).Value = tbEntry.Value
ActiveCell.Offset(0, 6).Value = tbStopLoss.Value
ActiveCell.Offset(0, 7).Value = tbTarget.Value
MsgBox "Thank You for entering the details of your trade. They have been added to row " & ActiveCell.Row
Unload Me
Call resetForm
Me.tbDate = Date
tbDate.Value = Format(tbDate.Value, "dd/mm/yyyy")
Me.tbTime = Time
End Sub
Sub resetForm()
tbMkt.Value = ""
tbDate.Value = ""
tbTime.Value = ""
tbEntry.Value = ""
tbStopLoss.Value = ""
tbTarget.Value = ""
tradeEntryUserForm.tbMkt.SetFocus
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
Me.tbDate = Date
tbDate.Value = Format(tbDate.Value, "dd/mm/yyyy")
Me.tbTime = Time
End Sub
Private Sub WithTrendFrame_Click()
End Sub
我按照上面的代码声明了myGlobalVar。我在btnLong_Click()中将此设置为True,但我不确定您在表单上将事件集加载为False时的意思是什么意思?请帮忙。
用户表格:
工作表:
这真的很容易。
1)设置布尔类型的全局变量
2)将表单加载事件设置为false
3)将按钮单击事件设置为true
4)确定在必要时应重置值的位置
也因为你调用了一个名为“重置表单”的函数,请注意如果你正在重新加载表单,那么根据我的描述,如果遵循,它将重置布尔变量的值(可能是故意的,但由你决定) )。