以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- excel报表导出错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117835) |
-- 作者:xvkewen -- 发布时间:2018/4/19 17:22:00 -- excel报表导出错误 我在导出EXCEL报表的时候程序出现以下错误提示,是什么原因;在其他电脑导出没有问题; 我的导出代码如下: Dim CurRow As
Row =
Tables("MainSchedule").Current \'获取当前排期行; Dim StyleStr As
String = CurRow("StyleNo") Dim rl As String =
_userroles \'获取当前登录用户角色 Dim Book As New
XLS.Book() Dim filepath As
String \'定义报表输出路径; Dim
styleToNarrow() As String = StyleStr.Split("*") Dim bw As String =
vars("ProcessPartName") \'获取已经点选的样办部位; If
styleToNarrow.Length > 1 Then styleStr = styleToNarrow(1) \'只获取SAP款号 End If If
rl.Contains("配料") Or rl.Contains("系统管理员") Then \'根据不同的用户角色选择不同的工序模版; If bw.Contains("大货") Then Book = New XLS.Book(ProjectPath &
"Attachments\\胸围大货工艺书(配料中心).xls") \'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板 Else Book = New XLS.Book(ProjectPath &
"Attachments\\胸围工艺书(配料中心).xls") \'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板 End If Else \'除配料员与系统管理员外,其他用户的报表打印格式; If bw.Contains("大货") Then \'如果样办的部件名称包含"大货"字样,则调用大货胸围工艺书模版; Book = New XLS.Book(ProjectPath &
"Attachments\\胸围工艺书(" & vars("ProcessPartName") &
").xls") \'打开模板 Else Book = New XLS.Book(ProjectPath &
"Attachments\\胸围工艺书(QA).xls") \'\'如果样办类型不是PP办,那么只调用正常做办的胸围工艺书模板 End If End If \'开始调用已经打印的胸围工艺书模版设置数据导出条件
,并生成报表; Dim Sheet As
XLS.Sheet = Book.Sheets(0) If
vars("ProcessPartName") <> "" Then \'对已经打开运动围工艺书模板设置导出的筛选条件; If rl.Contains("配料") Or
rl.Contains("系统管理员") Then If bw.Contains("大货") Then Sheet(11,19).Value = "<
bulkPart = \'" & vars("ProcessPartName") &
"\'>" Else Sheet(11,19).Value = "<
SamplePart = \'" & vars("ProcessPartName") &
"\'>" End If Else If bw.Contains("大货") Then Sheet(7,15).Value = "<
bulkPart = \'" & vars("ProcessPartName") &
"\'>" Else Sheet(7,18).Value = "<
SamplePart = \'" & vars("ProcessPartName") &
"\'>" End If End If Else If rl.Contains("配料") Or
rl.Contains("系统管理员") Then Sheet(11,19).Value = "" Else Sheet(7,18).Value = "" End If End If \'针对是否为PP办设置不同的输出文件名; If
bw.Contains("大货") Then filepath
= "D:\\reports\\" & StyleStr & "(" &
vars("ProcessPartName") & ")胸围工艺书.xls" Else filepath
= "D:\\reports\\" & CurRow("SrsNO") &
"(" & vars("ProcessPartName") & ")胸围工艺书.xls" End If Book.Build() \'生成细节区 Book.Save(filepath)\'保存工作簿 \'以下代码用于设置自动换行及调整行高(对合并单元格无效) Dim App As New
MSExcel.Application Dim Wb As
MSExcel.WorkBook = App.WorkBooks.Open(filepath) Dim Ws As
MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As
MSExcel.Range = Ws.Cells Rg.WrapText = True Rg.EntireRow.AutoFit \'自动调整行高 wb.saved = True App.DisplayAlerts
= False App.Visible = True If
rl.Contains("配料") Then \' Or
rl.Contains("系统管理员")
Ws.PrintOut(Preview:=False,ActivePrinter:="doPDF v7") \'直接打印; Else Return End If App.Quit |
-- 作者:有点甜 -- 发布时间:2018/4/19 18:20:00 -- 参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54396&replyID=360697&skin=1
|