(word)Excel自动创建并自动填入解决方案.docVIP

  • 10
  • 0
  • 约4.74千字
  • 约 5页
  • 2016-08-29 发布于北京
  • 举报

(word)Excel自动创建并自动填入解决方案.doc

(word)Excel自动创建并自动填入解决方案

1.创建调度用于每日创建Excel报表用于打开. 创建调度,设置时间为每日凌晨零点零一分或者两分启动调度,间隔为每天执行,没有结束时间.执行时运行脚本. 将如下代码复制进用户脚本内(VB编辑器): FN = Format(Now, yyyymmdd) 定义文件名为当前年月日 excelID.Workbooks.Open (D:\ReportTemplet.xls) 打开模板文件 excelID.ActiveWorkbook.SaveAs (D:\ + FN + .xls) 将模板文件另存为名为当前年月日的文件 excelID.Quit 注意放进代码自动生成的方法内,如下所示,(红字部分为自动生成的方法的开始与结束,加粗部分为定义的调度名称,这里的名称是BuildExcel,意为生成Excel) Private Sub BuildExcel_OnTimeOut(ByVal lTimerId As Long) FN = Format(Now, yyyymmdd) 定义文件名为当前年月日 excelID.Workbooks.Open (D:\ReportTemplet.xls) 打开模板文件 excelID.SaveWorkspace (D:\ + FN + .xls) 将模板文件另存为名为当前年月日的文件 End Sub 注意 ,这里的调度文件内 必须在最上面输入如下代码,用于创建 Excel 对象,如果没有这个则代码会报错, Dim excelID As New Excel.Application 同时还要引用Excel,引用方法如下 上方菜单栏内工具-引用 然后找到Microsoft Excel 11.0 Object Library 选好对号后按确定 2.创建调度用于每小时打开目标文件并写入内容. 创建调度,设置每小时整点执行调度,没有结束时间,执行时运行用户脚本. 脚本代码如下 Private Sub ExcelInput_OnTimeOut(ByVal lTimerId As Long) 此行为自动生成,名为ExcelInput,如果有另外的名字可略掉此行 Shell cmd.exe /c taskkill /f /im excel.exe 检查系统进程中的EXCEL进程并关闭 FN = Format(Now, yyyymmdd) 定义变量为当前年月日,用于文件名(FilesName) NH = Format(Now, HH) 定义当前小时变量,用于判断小时(NowHour) LD = CStr(Format(Now, yyyymmdd) - 1) 定义变量为前一天年月日,用于文件名(LastDay) AN = NH 定义变量记录行数,用于添加记录的行 excelID.Visible = True 显示当前窗口 If (NH = 1) Then 如果当前时间是一点则运行 AN = 24 列数增加24 excelID.Workbooks.Open (D:\ + LD + .xls) 打开模板文件(前一天) Else excelID.Workbooks.Open (D:\ + FN + .xls) 打开模板文件(当天) AN = NH - 1 End If ====================================sheet1 excelID.Worksheets(sheet1).Activate 设置当前活动表,如果模板内的sheet改名则这里必须也改名 excelID.Cells((12 + AN), 2).Value = Round(Fix32.Fix.R0287.F_CV) 在当前活动表的目标单元格内赋值,并将目标数值转换成整数 excelID.Cells((12 + AN), 6).Value = Round(Fix32.Fix.R0295.F_CV) excelID.Cells((12 + AN), 13).Value = Round(Fix32.Fix.R0359.F_CV) excelID.Cells((12 + AN), 17).Value = Round(Fix32.Fix.R0363.F_CV) excelID.Cells((12 + AN), 18).Value = Round(Fix32.Fix.R0303.F_CV) excelID.Cells((12 + AN), 21).Value = Round(Fix32.Fix.R0351.F_CV) excelID.Cells((12 + AN), 22).Value = Round(Fix32.Fix.R0311.F_CV) excelID.Cells((12 + AN), 25).Value = Roun

文档评论(0)

1亿VIP精品文档

相关文档