ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[交流] 推荐觉得论坛回帖过程中下载附件,解压缩,编辑后再压缩繁琐的朋友进来看看

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-6-2 17:12 | 显示全部楼层
真是好东西 谢谢

TA的精华主题

TA的得分主题

发表于 2012-6-10 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
shaowu459 老师:您好
请您看看为啥我按您的代码改的加载宏不能在指定文件夹里压缩文件,而是在D盘我的文档文件夹里生成一个名为“My Documents”的压缩文件。并提示最后一句代码错误“ .SaveAs "C:\Documents and Settings\Administrator\桌面\lpzxhjp的问题帖子附件\lpzxhjp-" & Format(Date, "yyyy.mm.dd") & "-" & .Name”

lpzxhjp的帖子附件.zip

7.37 KB, 下载次数: 6

点评

我看看,你的压缩软件是haozip?看样子压缩部分代码可以用,但是我不知道和winzip的命令行参数是不是一样的  发表于 2012-6-10 22:05

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-10 22:09 | 显示全部楼层
lpzxhjp 发表于 2012-6-10 21:39
shaowu459 老师:您好
请您看看为啥我按您的代码改的加载宏不能在指定文件夹里压缩文件,而是在D盘我的文档 ...

你打开一个工作簿,然后在代码那里一下一下的按F8,并且随时查看代码的效果,比如说另存了文件,比如说启动了压缩程序,看看到底是哪里出错。出错的时候debug,用鼠标从黄色的部分一点点划过,看看有什么异常的返回值。

TA的精华主题

TA的得分主题

发表于 2012-6-10 22:11 | 显示全部楼层
谢谢老师:麻烦您看看,我用的是好压软件。我调试不来了!

点评

我刚搜索了一下好压软件,没有看到什么命令行的信息。你方便的话装个winrar吧,只需要改一下参数就可以,见一楼大熊帖子的链接。  发表于 2012-6-10 22:16

TA的精华主题

TA的得分主题

发表于 2012-6-11 21:49 | 显示全部楼层
shaowu459 发表于 2012-6-10 22:09
你打开一个工作簿,然后在代码那里一下一下的按F8,并且随时查看代码的效果,比如说另存了文件,比如说启 ...

谢谢您,我再看看!

TA的精华主题

TA的得分主题

发表于 2012-6-11 22:29 | 显示全部楼层
shaowu459 发表于 2012-6-10 22:09
你打开一个工作簿,然后在代码那里一下一下的按F8,并且随时查看代码的效果,比如说另存了文件,比如说启 ...

shaowu老师:把他用在好压中我还是搞不定,只能麻烦您了,谢谢!

TA的精华主题

TA的得分主题

发表于 2012-6-12 10:30 | 显示全部楼层
shaowu459 发表于 2012-6-10 22:09
你打开一个工作簿,然后在代码那里一下一下的按F8,并且随时查看代码的效果,比如说另存了文件,比如说启 ...

老师:您好,我安装了winrar,用大熊的代码,改成我的路径,还是提示无法找到路径,无法压缩!

TA的精华主题

TA的得分主题

发表于 2012-6-12 10:36 | 显示全部楼层
本帖最后由 lpzxhjp 于 2012-6-12 10:37 编辑
shaowu459 发表于 2012-6-10 22:09
你打开一个工作簿,然后在代码那里一下一下的按F8,并且随时查看代码的效果,比如说另存了文件,比如说启 ...


麻烦老师看看,谢谢!我的代码:

  1. Sub Winrar()
  2.     Application.DisplayAlerts = False
  3.     Dim TheRarexe As String    'WINRAR程序的位置
  4.     Dim TheSource As String    '压缩前的源文件
  5.     Dim TheTarget As String    '压缩好的文件
  6.     Dim TheFileString As String
  7.     Dim TheResult As Long
  8.     If InStr(ActiveWorkbook.Name, "EH(lpzxhjp)") > 0 Then
  9.         With ActiveWorkbook
  10.             TheRarexe = "D:\Program Files\WinRAR\WinRAR"    '系统WINRAR路径
  11.             '.SaveCopyAs "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & "-" & .Name   '另存为C盘根目录下,作为压缩用的临时文件
  12.             .SaveCopyAs "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & Mid(.Name, 18, InStrRev(.Name, ".xl") - 1)     '另存为C盘根目录下,作为压缩用的临时文件
  13.             TheSource = "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & Mid(.Name, 18, InStrRev(.Name, ".xl") - 1)  '临时文件作为压缩源文件
  14.             TheTarget = "C:\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & Mid(.Name, 18, InStrRev(.Name, ".xl") - 18) & ".rar"       '保存到目录
  15.             TheFileString = TheRarexe & " a " & TheTarget & " " & TheSource
  16.             TheResult = Shell(TheFileString, vbHide)    '压缩
  17.             Application.Wait Now + TimeValue("00:00:02")
  18.             Kill TheSource    '删除临时文件
  19.             .SaveAs "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & Mid(.Name, 18, 99)     '另存为C盘根目录下,作为压缩用的临时文件
  20.         End With
  21.     Else
  22.         With ActiveWorkbook
  23.             TheRarexe = "D:\Program Files\WinRAR\WinRAR"    '系统WINRAR路径
  24.             .SaveCopyAs "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & "-" & .Name   '另存为C盘根目录下,作为压缩用的临时文件
  25.             TheSource = "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & "-" & .Name  '临时文件作为压缩源文件
  26.             TheTarget = "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & "-" & Mid(.Name, 1, InStrRev(.Name, ".xl") - 1) & ".rar"       '保存到目录
  27.             TheFileString = TheRarexe & " a " & TheTarget & " " & TheSource
  28.             TheResult = Shell(TheFileString, vbHide)    '压缩
  29.             Application.Wait Now + TimeValue("00:00:02")
  30.             Kill TheSource    '删除临时文件
  31.             '.SaveAs "C:\Documents and Settings\Administrator\桌面\Excelhome\EH(lpzxhjp)-" & Format(Date, "yyyy.mm.dd") & "-" & .Name     '另存为C盘根目录下,作为压缩用的临时文件
  32.         End With
  33.     End If
  34.     Application.DisplayAlerts = True
  35. End Sub
复制代码

未命名.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-12 10:46 | 显示全部楼层
lpzxhjp 发表于 2012-6-12 10:36
麻烦老师看看,谢谢!我的代码:

你打开的工作簿得是保存过的工作簿,不能新建一个就这样操作。因为在网上打开的文件其实也是存在本地的临时文件夹里的。

TA的精华主题

TA的得分主题

发表于 2012-6-12 10:49 | 显示全部楼层
shaowu459 发表于 2012-6-12 10:46
你打开的工作簿得是保存过的工作簿,不能新建一个就这样操作。因为在网上打开的文件其实也是存在本地的临 ...

老师:您好,我打开的就是坛子里的附件

点评

你能在编辑器里一下一下的点F8看看嘛,错误的地方截图上来,然后告诉我发生错误时在本地什么位置生成了什么文件。  发表于 2012-6-12 11:27
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 02:52 , Processed in 0.026787 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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