Foxtable(狐表)用户栏目专家坐堂 → [求助]请帮忙看个excel的问题


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

主题:[求助]请帮忙看个excel的问题

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
[求助]请帮忙看个excel的问题  发帖心情 Post By:2016/12/26 9:49:00 [只看该作者]

网上搜了段可以删除excel代码的
Private Sub Workbook_Open()
Application.DisplayAlerts = False
  Dim strFilePath, strJunk As String
    strFilePath = Excel.Workbooks.Item(1).FullName
    Close #1
    Open strFilePath For Binary As #1
    strJunk = Space(LOF(1))
    Put #1, , strJunk
    ThisWorkbook.Saved = True
    ThisWorkbook.Close
End Sub

我想利用ft去打开excel 清空所有代码,不知道要如何改改 烦请指点下 谢谢

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/26 9:56:00 [只看该作者]

 参考,你要做什么功能?

 

http://www.foxtable.com/webhelp/scr/2121.htm

 


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/12/26 10:00:00 [只看该作者]

以下是引用有点色在2016/12/26 9:56:00的发言:

 参考,你要做什么功能?

 

http://www.foxtable.com/webhelp/scr/2121.htm

 

 

用FT打开制定的excel文件 清空里面的代码

因为代码有宏病毒

[此贴子已经被作者于2016/12/26 10:00:06编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/26 10:29:00 [只看该作者]

 没找到好方法。

 

 你把代码写到一个excel文件里,然后在foxtable里面打开此文件,再打开有病毒的文件,运行宏,不就好了?

 

 直接执行 App.run("宏名称")


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/12/26 10:57:00 [只看该作者]

以下是引用有点色在2016/12/26 10:29:00的发言:

 没找到好方法。

 

 你把代码写到一个excel文件里,然后在foxtable里面打开此文件,再打开有病毒的文件,运行宏,不就好了?

 

 直接执行 App.run("宏名称")

 

FT不能直接删除或者使用上面那段代码来删除么?主要就是这个问题


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/26 12:50:00 [只看该作者]

以下是引用jiskin在2016/12/26 10:57:00的发言:

 

FT不能直接删除或者使用上面那段代码来删除么?主要就是这个问题

 

汗,你1楼的代码有测试过吗?根本就没有效果啊。

 

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/26 13:17:00 [只看该作者]

 用下面的代码可以删除。

 

Option Explicit
Sub RmvMacros()
    Dim wbk As Workbook
    Dim strFilename As String
    strFilename = "d:\test.xls" '要删除宏的文件名
    Application.EnableEvents = False '禁止在打开时触发事件
    Set wbk = Workbooks.Open(strFilename)
    RemoveAllMacros wbk '调用RemoveAllMacros删除宏代码
    wbk.Close savechanges:=True
    Application.EnableEvents = True
End Sub

Sub RemoveAllMacros(wbk As Workbook)    '参数wbk为要删除宏的工作簿
    Dim i As Long
    Dim vbc As Object
    For Each vbc In wbk.VBProject.VBComponents
        'MsgBox vbc.Name & "  " & vbc.Type
        If vbc.Type = 100 Then        '如果是Excel对象的模块,则清除其中的代码,否则删除整个模块
            vbc.CodeModule.DeleteLines 1, vbc.CodeModule.CountOfLines
        ElseIf vbc.Type = 1 Then
            wbk.VBProject.VBComponents.Remove vbc
        End If
    Next vbc
End Sub

 

记得勾选 http://blog.csdn.net/yjg428/article/details/5927168

 


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/26 13:57:00 [只看该作者]

 mark 删除宏代码

 

Dim App As New MSExcel.Application
try
    App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
    app.EnableEvents = False '禁止在打开时触发事件
    Dim Wbk As MSExcel.WorkBook = App.WorkBooks.Open("D:\test.xls")
   
    For Each vbc As object In wbk.VBProject.VBComponents
        MsgBox(vbc.Name & "  " & vbc.Type)
        If vbc.Type = 100 Then        '如果是Excel对象的模块,则清除其中的代码,否则删除整个模块
            vbc.CodeModule.DeleteLines(1, vbc.CodeModule.CountOfLines)
        ElseIf vbc.Type = 1 Then
            wbk.VBProject.VBComponents.Remove(vbc)
        End If
    Next
   
    wbk.save
    msgbox("成功")
catch ex As exception
    msgbox(ex.message)
finally
    App.Quit
End try


 

你要引用一下这个dll才行

 

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:microsoft.vbe.interop.zip


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2016/12/26 15:31:00 [只看该作者]

以下是引用有点色在2016/12/26 13:57:00的发言:

 mark 删除宏代码

 

Dim App As New MSExcel.Application
try
    App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
    app.EnableEvents = False '禁止在打开时触发事件
    Dim Wbk As MSExcel.WorkBook = App.WorkBooks.Open("D:\test.xls")
   
    For Each vbc As object In wbk.VBProject.VBComponents
        MsgBox(vbc.Name & "  " & vbc.Type)
        If vbc.Type = 100 Then        '如果是Excel对象的模块,则清除其中的代码,否则删除整个模块
            vbc.CodeModule.DeleteLines(1, vbc.CodeModule.CountOfLines)
        ElseIf vbc.Type = 1 Then
            wbk.VBProject.VBComponents.Remove(vbc)
        End If
    Next
   
    wbk.save
    msgbox("成功")
catch ex As exception
    msgbox(ex.message)
finally
    App.Quit
End try


 

你要引用一下这个dll才行

 

 

 下载信息  [文件大小:21.3 KB  下载次数:0]
点击浏览该文件:microsoft.vbe.interop.zip

 

哈哈 感谢有你!


 回到顶部