用户在txtAddNote中输入文本,然后单击cmdAddNote按钮,VBA运行并将注释附加到带有时间和日期戳的txtNotes。
但它只有在txtNotes中已有文本时才有效。当txtNotes为空时,我该怎么做才能使它工作?
Private Sub cmdAddNote_Click()
Dim MyDate As String
MyDate = Now()
Form_ClientF.txtNotes = vbCrLf + MyDate + vbCrLf + vbCrLf + Form_ClientF.txtAddNote + vbCrLf + vbCrLf + Form_ClientF.txtNotes
Form_ClientF.txtAddNote = ""
End Sub
答案 0 :(得分:2)
使用.Value
方法而不是直接引用文本框。
就此而言,每当引用Excel VBA对象时都要使用它 - 复选框等。这样可以避免以后出现这样的问题。
Private Sub cmdAddNote_Click()
Dim MyDate As String
MyDate = Now()
Form_ClientF.txtNotes.value = vbCrLf + MyDate + vbCrLf + vbCrLf + Form_ClientF.txtAddNote.value + vbCrLf + vbCrLf + Form_ClientF.txtNotes.value
Form_ClientF.txtAddNote.value = ""
End Sub
答案 1 :(得分:2)
我假设您确保不运行cmdAddNote_Click
,除非txtAddNote
包含要添加的内容(请参阅下面的示例代码)。
如果这是真的,你可以这样做......
Form_ClientF.txtNotes = vbCrLf & MyDate & vbCrLf & vbCrLf & _
Form_ClientF.txtAddNote & (vbCrLf + vbCrLf + Form_ClientF.txtNotes)
当用于将字符串与Null连接时,此方法利用+
和&
之间的差异。以下是立即窗口中的示例,说明了差异。
? "a" + Null
Null
? "a" & Null
a
以下是使用此方法的表单的截屏...
表单使用的代码......
Option Compare Database
Option Explicit
Private Sub cmdAddNote_Click()
Me.txtnotes = Format(Now, "mmm dd, yyyy h:nn:ss ampm") & vbCrLf & _
Me.txtAddNote & (vbCrLf + vbCrLf + Me.txtnotes)
Me.txtAddNote = vbNullString
Me.txtAddNote.SetFocus
Me.cmdAddNote.Enabled = False
End Sub
Private Sub Form_Current()
Me.cmdAddNote.Enabled = (Len(Trim(Nz(Me.txtAddNote, vbNullString))) > 0)
End Sub
Private Sub txtAddNote_Change()
Me.cmdAddNote.Enabled = (Len(Trim(Nz(Me.txtAddNote.Text, vbNullString))) > 0)
End Sub
答案 2 :(得分:1)
连接Null
值和字符串可以很好地完成整个事情Null
,所以请尝试这样做:
Form_ClientF.txtNotes = vbCrLf + MyDate + vbCrLf + vbCrLf + Nz(Form_ClientF.txtAddNote, "") + vbCrLf + vbCrLf + Nz(Form_ClientF.txtNotes, "")