Foxtable(狐表)用户栏目专家坐堂 → VBA代码中的 set 语句,在Foxtable中有替代的用法吗?


  共有2256人关注过本帖树形打印复制链接

主题:VBA代码中的 set 语句,在Foxtable中有替代的用法吗?

帅哥哟,离线,有人找我吗?
wcs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
VBA代码中的 set 语句,在Foxtable中有替代的用法吗?  发帖心情 Post By:2018/8/28 18:45:00 [显示全部帖子]

比如,在VBA中,有这样的代码:
 Set tbs = Selection.Tables

意思是把选定区域内的表集合,赋值给名为tbs的变量,在以后的代码中直接用tbs变量,如:
tbs.Item(i)..Range.Find.Text = " "
tbs.Item(i)..Range.Find.Replacement.Text = ""   ’文本中要删除的字符
tbs.Item(i)..Range.Find..Execute Replace:=wdReplaceAll '全部删除

在Foxtable中没有SET语句了,在Foxtable中该如何写代码达到相同的目的?
用with     end with

还是直接用  object 对象

还是有别的方法?

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2018/8/29 10:17:00 [显示全部帖子]

谢谢!

我写定了这段代码,但是达不到想要的效果,能帮忙看下哪儿出了问题吗?

Dim tbs = _app.Selection.Tables '对表格进行排版
For i = 1 To tbs.Count ’历遍选定区域中的WORD表
    Application.DoEvents ’屏幕步步更新
    If Forms("窗口1").Controls("CheckBox9").checked = True Then ’如果在窗口有这个选项
        tbs.Item(i).Range.Find.Text = "AHE" ’要删除的字符
        tbs.Item(i).Range.Find.Replacement.Text = ""   '清空
        output.show(tbs.Item(i).Range.Find.Text) '我想看下变量是不是被正确地用了
        output.show(tbs.Item(i).Range.Find.Replacement.Text)
                    tbs.Item(i).Range.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll) ’这是个参数,全部替换的意思,写法应是对的与上次我作的一样
        output.show("是")
        output.show(i)
        output.show(tbs.Count)
    End If
Next

在代码运行窗口显示output.show()的内容如下:


1
2

前面的两个output.show()没有正确地引用   AHZ    和""
在执行这段代码时达不到清除所有的AHZ的目的,不知代码中哪儿有问题?请教了!

上述代码与原来VBA中的结构基本一样,我在想是不是range这儿有点问题?

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1034 积分:7408 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2018/8/29 11:44:00 [显示全部帖子]

谢谢!经测试有效。

我理解上述代码与我以前的代码的区别是:先用tb.Range.Select,再次选定区域!

不再用range,因为先前选定的系统没有识别出来。

 回到顶部