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的例子 让我看看
页: 1 [2] 3
查看完整版本: Spread6的SelText属性的用法