【发布时间】:2016-08-13 09:13:05
【问题描述】:
所以下面的代码有时会起作用,有时它会添加我试图从文本字符串中删除的 & 符号(到复制缓冲区)。
代码的重点是将字符串从正确的位置复制到&符号之前。但是,在随机场景中,它仍会添加与号。
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
有人可以尝试解释为什么它有时有效,有时无效吗?下面是一张图片,其中包含两个无法正常工作的示例
(澄清说明:下面显示的文本框值是来源值,而不是结果)
【问题讨论】:
-
他们都有
&?对你的目标感到困惑。 -
编辑原帖,使其更清晰
-
哦。因为您的
trim中的instr正在阅读前半部分。编辑:所以它只有在短于下半部分时才有效。 Edit2:你想在&之后找到空间,然后从那里做你的right。 -
你为什么不直接使用
Mid$()函数呢? -
哈哈很公平 - 我已经更新了你的帖子以澄清图像,因为我这真的让我感到困惑!