czfolly
发表于 2016-3-10 13:19:40
下面的有SetFocuse,但是只是光标移进到了Cell里边,值并没有。
请问你在哪个环境下试的。方便的话可以把你的工程给我。我看一下。
With Me.vaSpread1
.Row = 10
.Col = 1
.SetFocus
.SetActiveCell 1, 10
.EditMode = True
'DoEvents
.SelStart = 2
.SelLength = 2
.SelText = "XX"
.SelText = .SelText + "Test"
End With
gw0506
发表于 2016-3-10 17:20:57
你好,我这边做了些研究,得到如下结论:
1. SelText设置的时候,单元格里要有这些文字,才能被选中。如果没有匹配的,就不会被选中。
2. 可以设置 .EditModeReplace = True ,这样可以看到选中的部分的hightlight效果。
3. 你想实现的需求是什么?看能不能通过其他方法来实现?
Private Sub Command2_Click()
With Me.fpSpread1
.SetFocus
.SetActiveCell 1, 1
.EditMode = True
.EditModeReplace = True
'DoEvents
'.SelStart = 0
'.SelLength = 2
.SelText = "XX"
.SelText = "Test"
End With
End Sub
czfolly
发表于 2016-3-10 17:25:58
主要不清楚 这仨个属性是怎么用。单纯设置这三个属性没有任何作用。
帮助文档上说,可以替换Cell里边的内容。没有看到这样的效果
SelStart
SelLength
SelText
gw0506
发表于 2016-3-10 18:10:04
根据咱俩测试结果,看来必须要调DoEvents才能生效。
czfolly
发表于 2016-3-11 08:52:12
那这三个属性 到底 是做什么用的。具体意义是什么?
czfolly
发表于 2016-3-11 09:35:49
可否能向你们的研发组,咨询一下 这三个属性的作用。或者能提供一个例子。
gw0506
发表于 2016-3-11 11:20:36
就是获取或设置
开始的光标位置selStart
选中的文字长度selLength
选中的内容 selText
就是控制选中内容的。
czfolly
发表于 2016-3-11 11:24:12
本帖最后由 czfolly 于 2016-3-11 11:25 编辑
既然是 控制选中内容的,那么为什么加了DoEvents才能看到效果。
如果不加的话为什么 没有得到 选中的内容?
gw0506
发表于 2016-3-11 12:26:00
是这样,在VB里,各种事件都是直接和消息队列交互。你这个用力是在button click事件中。这时候其实我们做的setfocuse,设置编辑状态,等等都是排队状态。调用DoEvents之后,可以强制执行全部队列内容,这时候排队中消息都执行完了,才能完成selText设置。
czfolly
发表于 2016-3-11 13:20:15
不是很明白。
不加 DoEvents的时候,SetFocus也能执行 设置焦点。而SelText就没任何反应。
或者说 没有没 关于SelText的例子 让我看看