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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(ByV al 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 = Round(Fix32.Fix.R0355.F_CV)

excelID.Cells((12 + AN), 26).Value = Round(Fix32.Fix.R0343.F_CV)

excelID.Cells((12 + AN), 28).Value = Round(Fix32.Fix.R0335.F_CV)

excelID.Cells((12 + AN), 32).Value = Round(Fix32.Fix.R0367.F_CV)

'=====================================sheet3

excelID.Worksheets("sheet3").Activate '设置当前活动表

excelID.Cells((12 + AN), 19).Value = Round(Fix32.Fix.fct1csl.F_CV)

excelID.Cells((12 + AN), 22).Value = Round(Fix32.Fix.fct1nsll.F_CV)

excelID.Cells((12 + AN), 35).Value = Round(Fix32.Fix.fct2csl.F_CV)

excelID.Cells((12 + AN), 38).Value = Round(Fix32.Fix.fct2nsll.F_CV)

excelID.Cells((12 + AN), 42).Value = Round(Fix32.Fix.r0191.F_CV)

excelID.Cells((12 + AN), 43).Value = Round(Fix32.Fix.r0187.F_CV)

'=====================================sheet4

excelID.Worksheets("sheet4").Activate '设置当前活动表

excelID.Cells((12 + AN), 13).Value = Round(Fix32.Fix.R0023.F_CV)

excelID.Cells((12 + AN), 18).Value = Round(Fix32.Fix.R0031.F_CV)

excelID.Cells((12 + AN), 30).Value = Round(Fix32.Fix.R0035.F_CV)

excelID.Cells((12 + AN), 31).Value = Round(Fix32.Fix.R0163.F_CV)

excelID.Cells((12 + AN), 32).Value = Round(Fix32.Fix.R0199.F_CV)

excelID.Cells((12 + AN), 34).Value = Round(Fix32.Fix.R0207.F_CV)

相关文档
最新文档