| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
买学问 - 大牛一对一辅导,有问必答买学问 - 专业的付费知识问答平台
共有 409 人关注过本帖
标题:VBA2010中 SaveAs 后的变量超长了
只看楼主 加入收藏
znstz
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-18
结帖率:0
  已结贴   问题点数:20  回复次数:3   
VBA2010中 SaveAs 后的变量超长了
'********************************代码如下:

Sub 导出()
Dim AA As String
   ...
    AA="2018年1月1日至2018年3月31日公司出车四辆大型车辆(货车)出车里程及油料统计表(2018年4月统计).xlsx"

     ....
    Workbooks("总表.xlsm").Worksheets(Array(7,8,9,10)).Copy
ActiveWorkbook.SaveAs AA

End Sub

'***************运行错误‘1004’
’**************怀疑文件名过长,将AA的值改为"大车4",运行正常
'***************BUT ,老板要那个长的名字,只好先出表,再改表名,有没有大侠能帮忙,指点一下,直接出长表名?毕竟,每月都要出一张的。3Q


2018-04-18 21:03
znstz
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-18
  得分:0 
跪求,解!
2018-04-18 21:16
wds1
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:36
帖 子:347
专家分:1840
注 册:2016-3-10
  得分:10 
应该是:路径+文件名过长,所以保存不了
win系统一般为256长度,其他的软件一般都有最大限定
建议:增加判断和改名
1、vba最大支持的长度你可以测试一下
2、如果超过规定长度,将文件名保存为临时变量,按短文件名保存
3、之后利用改名
2018-04-19 08:18
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:909
专家分:5237
注 册:2015-8-10
  得分:10 
这个好像不是超长。为什么报错也没有搞明白
不过代码改动一下就可以(Excel2016测试通过)
AA = "2018年1月1日至2018年3月31日公司出车四辆大型车辆(货车)出车里程及油料统计表(2018年4月统计)"
ActiveWorkbook.SaveAs AA, 51

后面这个51是XlFileFormat格式的枚举,参见https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/xlfileformat-enumeration-excel
xlExcel8 56 Excel 97-2003 工作簿 *.xls
xlWorkbookDefault 51 默认工作簿 *.xlsx
2018-04-19 08:55







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032479 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved