vba Excel-仅选择文本框中的最后一个字符
我有一张表格,可以在上面输入订单。其中一个字段是订单号文本框。现在很多人都知道,订单号可能很长,而且它们大部分都是数字形式的(我曾经读过的do-Maly)。因此,我想在orders文本框中添加tab键,让它只突出显示最后一个编号(我输入的上一个订单编号仍在文本框中),这样,如果编号为vba Excel-仅选择文本框中的最后一个字符,vba,Vba,我有一张表格,可以在上面输入订单。其中一个字段是订单号文本框。现在很多人都知道,订单号可能很长,而且它们大部分都是数字形式的(我曾经读过的do-Maly)。因此,我想在orders文本框中添加tab键,让它只突出显示最后一个编号(我输入的上一个订单编号仍在文本框中),这样,如果编号为5467245,然后它只会突出显示数字5,我只需按6即可将数字更改为4567246 PS:我曾考虑过在订单号上自动添加+1,但有时他们会跳过一个数字,然后我不得不按7,而不是按上面的示例中的6 根据这个答案,我现在得
5467245
,然后它只会突出显示数字5
,我只需按6
即可将数字更改为4567246
PS:我曾考虑过在订单号上自动添加+1,但有时他们会跳过一个数字,然后我不得不按7
,而不是按上面的示例中的6
根据这个答案,我现在得到的是:
但它只在我用鼠标点击文本框时起作用(所以它实际上起作用,但只在鼠标点击时起作用),尽管作者说当我点击文本框时它会起作用,但当我点击文本框时它不起作用(这可能是因为我不想突出显示整个值,如他的示例所示)。我真的需要它来处理tab键
这就是问题所在-当我在文本框中设置tab键时,如何使其工作?我发现您的代码在
Enter
事件中工作,控件EnterFieldBehavior
属性设置为1-fmEnterFieldBehaviorRecallSelection
Private Sub txtb_orderNumber_Enter()
With Me.txtb_orderNumber
If Len(.Text) > 0 Then
.SelStart = Len(.Text) - 1
.SelLength = 1
End If
End With
End Sub
@Darren更干净更好的解决方案!我尝试了
\u Enter
,但后来那篇帖子说它不能与.setFocus
一起使用。所以谢谢你,工作得很好!
Private Sub txtb_orderNumber_Enter()
With Me.txtb_orderNumber
If Len(.Text) > 0 Then
.SelStart = Len(.Text) - 1
.SelLength = 1
End If
End With
End Sub