ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]该宏一运行,word就假死!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-2-2 08:49 | 显示全部楼层 |阅读模式

Option Explicit

Sub daili()
Dim i As Paragraph, x As Integer, myrange As Range, r1 As Range
x = 1
    If Application.ActiveDocument.Tables.Count < 1 Then
        MsgBox "不存在表格"
        Exit Sub
    End If
     With Application.ActiveDocument.Tables(1)
        .Columns(3).Delete
        .ConvertToText Separator:=wdSeparateByTabs
     End With
     Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Set myrange = Application.ActiveDocument.Range
    With myrange.Find
        .Text = "??:"
        .Replacement.Text = ":"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    myrange.Find.Execute Replace:=wdReplaceAll
    For Each i In Application.ActiveDocument.Paragraphs
        If i.Range.Find.Execute(findtext:=":80") = True Then
           
         Else
            i.Range.Delete
        End If
  
    Next
        With myrange.Find
     
        .Execute findtext:="^t", replacewith:="", Format:=False, Replace:=wdReplaceAll
   
       .Execute findtext:="HTTP", replacewith:="@HTTP#", Replace:=wdReplaceAll
      
      End With
 
End Sub

iruKfc09.rar (78.05 KB, 下载次数: 10)

该宏的目的是将附件中的代理表格格式进行转换,转换成固定格式。

第三列为时间,没有实际意思,删去。

最后转化成如下格式

192.168.1.1:8080@HTTP#备注

.

.

.

即冒号后面是端口号,@后是协议,#后是备注

最后存为纯文本格式。
我自己做了一个代码,代理少的时候还可以将就,如附件那么多,非死不可。

大侠帮我优化一下,或者直接重写一个,谢谢!

再谢!

TA的精华主题

TA的得分主题

发表于 2007-2-2 09:40 | 显示全部楼层

在大侠出手前,我趁机跟帖练习练习,一同请教。
修改了一下,勉强可完成附件的替换:
Option Explicit
Sub daili()
Dim i As Paragraph, x As Integer, myrange As Range, r1 As Range
Application.ScreenUpdating = False
x = 1 '这句不知有何用?
Set myrange = Application.ActiveDocument.Range
    If myrange.Tables.Count < 1 Then
        MsgBox "不存在表格"
        Exit Sub
    End If
     With myrange.Tables(1)
        .Columns(3).Delete
        .ConvertToText Separator:=wdSeparateByTabs
     End With
     With myrange.Find
        .ClearFormatting
        .Text = "??:"
        .Replacement.ClearFormatting
        .Replacement.Text = ":"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    myrange.Find.Execute Replace:=wdReplaceAll
    For Each i In myrange.Paragraphs
        If i.Range.Find.Execute(findtext:=":80") = False Then
           i.Range.Delete
        End If
    Next
        With myrange.Find
        .Execute findtext:="^t", replacewith:="", Format:=False, Replace:=wdReplaceAll
       .Execute findtext:="HTTP", replacewith:="@HTTP#", Replace:=wdReplaceAll
        End With
Application.ScreenUpdating = True
End Sub

[此贴子已经被作者于2007-2-2 9:42:52编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-2 09:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

二楼代码运行也不理想,等待相当长时间也没有结束,按ESC键取消后,执行结果结果满足要求(制表符没能除去)。

补充一下,要除去非80和8080的代理。

TA的精华主题

TA的得分主题

发表于 2007-2-2 10:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用byld在2007-2-2 9:58:57的发言:

二楼代码运行也不理想,等待相当长时间也没有结束,按ESC键取消后,执行结果结果满足要求(制表符没能除去)。

补充一下,要除去非80和8080的代理。

我的机执行的时间大概10秒种,执行完后没发现有制表符,也没见有非80和8080的行。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-2 10:39 | 显示全部楼层

我的乖,我傻傻的等了约3分钟,才执行完毕,这效率也太差了吧?

是不是代码那边出问题了?

大侠指点一下。

我的可是P43.0的,超线程的,内存小点256兆

TA的精华主题

TA的得分主题

发表于 2007-2-2 10:45 | 显示全部楼层

可能不是代码问题。
刚才我也运行了您的你代码,执行时间差不多。我的机也是p4 3.0 256内存,word2003sp2

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-2-2 11:06 | 显示全部楼层
可能是我的word问题,我用的是2003,非正版的,以前运行守版主的一个得到word所有内置工具条的代码,也是一动就死,word没有响应,不像这个,等等死活还能出来。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 13:50 , Processed in 0.039650 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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