因此下面的代码有时会工作,有时它会添加&符号(到复制缓冲区),我试图从文本字符串中删除。
代码的要点是将字符串从正确位置复制到&符号之前。但是,在随机情况下,它仍会添加&符号。
Private Sub Block1_Enter()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim MyData As New DataObject
Dim this As String
Dim oldxt As String
oldtxt = Block1.Text
If InStr(Block1.Text, "&") > 0 Then
this = Trim(Right(Block1.Text, InStr(Block1.Text, "&") - 1))
Block1.Text = "End Date Copied" & this
MyData.SetText this
MyData.PutInClipboard
Application.Wait (Now + #12:00:02 AM#)
Block1.Text = oldtxt
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
有人可以试着解释为什么它有时会起作用,有时却不行吗?下面是一个图像,其中包含两个无法正常工作的示例
(注意澄清:下面显示的文本框值是来源值,而不是结果)
答案 0 :(得分:3)
改为使用Mid$()
:
this = Trim$(Mid$(Block1.Text, InStr(Block1.Text, "&") + 1))
答案 1 :(得分:1)
您目前正在从字符串的左侧获取&
的位置,然后使用此数字从字符串的右侧获取日期;相反,您应该从字符串的Instr
中减去&
的{{1}}值,以获取剩余的字符。试试这个:
Len
这些日期特别是错误的原因是因为第二个日期的字符长度比第一个日期的字符长度短。