ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1925|回复: 6

[重求] 复杂替换之法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-3-17 20:11 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

 

前蒙二位兄长赐教,成功链接上“发帖须知”,及“数独”游戏;甚是感谢!

独于word中如何施行这般替换,依然未解,重新求教,望高人指点;在下这厢先谢了!

1. 表格共计16×16格;

2. 单独替换某行,或某列,或某个4×4方格中的某几个数据,而不影响其他数据;

3. 由于数据过为繁多,似离不开替换中“高级”、“使用通配符”;

再行谢过!

 

3n7AMoIf.rar (7.99 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2007-3-17 20:46 | 显示全部楼层

你的意思是说将两个表格相同位置内的内容作比较,在第二表中删除第一表的数字或字母?

那可能要VBA来帮忙吧,单纯的查找替换一时还想不起来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-17 22:57 | 显示全部楼层

然也!

倘若第一行第一列有2,则将此行、此列、此4×4方框中之2尽数删除;最后把这个位置之数用2替代之

而这样一个一个操作起来则大费周章;故批量之法不可或缺也!

此等想法表述甚是不易,我亦未曾理清;仁兄竟能领会,喜哉!

何时果获解决之道,敬请赐教!谢,再谢!

TA的精华主题

TA的得分主题

发表于 2007-3-18 11:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用jjpb在2007-3-17 22:57:00的发言:

然也!

倘若第一行第一列有2,则将此行、此列、此4×4方框中之2尽数删除;最后把这个位置之数用2替代之

而这样一个一个操作起来则大费周章;故批量之法不可或缺也!

此等想法表述甚是不易,我亦未曾理清;仁兄竟能领会,喜哉!

何时果获解决之道,敬请赐教!谢,再谢!

倒牙了,酸哉酸哉!

TA的精华主题

TA的得分主题

发表于 2007-3-18 13:31 | 显示全部楼层

也就是字符串相减的问题了?

放在Excel中做吧,很简单的。

两表放在不同的sheet中,结果放在第三张sheet中


[此贴子已经被作者于2007-3-18 13:38:31编辑过]

[重求] 复杂替换之法

[重求] 复杂替换之法

TA的精华主题

TA的得分主题

发表于 2007-3-18 17:02 | 显示全部楼层

作为练习,试写了一小部分,是以当前光标所在单元格的字符为查找对象,然后按规则删除第2个表格中相应的字符。测试了若干次,不知是否还有错漏。另,运行时间有时达3秒,太长了,估计方法全不对头。不知在word中完成最快要多长时间

Sub shudu()
'
Dim myrnum As Integer, mycnum As Integer, findtext As String
Dim i As Integer, n As Integer, myceltext As String
Dim st_time As Single, en_time As Single

Application.ScreenUpdating = False
'st_time = Timer
If Selection.Information(wdWithInTable) = True Then
    myrnum = Selection.Range.Information(wdEndOfRangeRowNumber)
    mycnum = Selection.Range.Information(wdEndOfRangeColumnNumber)
    findtext = Mid(ThisDocument.Tables(1).Cell(myrnum, mycnum).Range.Text, _
        1, Len(ThisDocument.Tables(1).Cell(myrnum, mycnum).Range.Text) - 2)
    With ThisDocument.Range.Tables(2)
        For i = 1 To 16
            myceltext = Mid(.Rows(myrnum).Cells(i).Range.Text, _
                1, Len(.Rows(myrnum).Cells(i).Range.Text) - 2)
                .Rows(myrnum).Cells(i).Range.Text = _
                    Mid(Replace(myceltext, findtext, ""), 1)
                myceltext = Mid(.Rows(i).Cells(mycnum).Range.Text, _
                    1, Len(.Rows(i).Cells(mycnum).Range.Text) - 2)
                .Rows(i).Cells(mycnum).Range.Text = _
                    Mid(Replace(myceltext, findtext, ""), 1)
        Next
        For i = 1 To 4
            For n = 1 To 4
                If InStr(.Rows(Int((myrnum - 1) / 4) * 4 + i).Cells _
                (Int((mycnum - 1) / 4) * 4 + n).Range.Text, findtext) <> 0 Then
                    myceltext = Mid(.Rows(Int((myrnum - 1) / 4) * 4 + i).Cells _
                        (Int((mycnum - 1) / 4) * 4 + n).Range.Text, 1, _
                        Len(.Rows(Int((myrnum - 1) / 4) * 4 + i).Cells _
                        (Int((mycnum - 1) / 4) * 4 + n).Range.Text) - 2)
                    .Rows(Int((myrnum - 1) / 4) * 4 + i).Cells(Int((mycnum - 1) / 4) _
                        * 4 + n).Range.Text = Mid(Replace(myceltext, findtext, ""), 1)
                End If
            Next n
        Next i
    End With
    End If
    'en_time = Timer
    'Debug.Print en_time - st_time
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-20 14:04 | 显示全部楼层

多谢sylun兄、c81兄、cxz008兄指点!

回“家”以后,才知道我是多么的土星人、多么的大白菜!

[em08]

操作起来,还不是很明白

[em09]

已不好意思麻烦各位高手——呵呵太不在一个层次上啊!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 16:49 , Processed in 0.037775 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表