




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Function OpenExcelFile(sPath As String, ByVal sFileName As String, bDisplay As Boolean, sPwd As String) As Integer许长安 时间: 2016-2-4打开Excel文件参数说明:sPath:文件绝对路径;sFileName:Excel文件名;bDisplay:True显示错误信息;sPwd:文件打开密码返回值:-1:同名文件已经打开;-2:文件不存在或密码错误;0:成功打开;1:文件已经被打开Dim bOpen As BooleanDim sFullName As StringOn Error Resume NextIf InStr(LCase(sFileName), .xls) = 0 Then sFileName = sFileName & .xlssFullName = Workbooks(sFileName).FullName检查是否已经打开同名的Excel文件如果有sFullName不为空On Error GoTo 0bOpen = FalseIf sFullName ThenIf LCase(sFullName) = LCase(sPath & & sFileName) ThenbOpen = True判断已经打开的同名文件是否本次需要打开的文件OpenExcelFile = 1文件已经被打开MsgBox 请首先关闭“ & sFileName & ”文件! & Chr(13) & 不能同时打开同名文件,这是Excel的规定!, vbOKOnly + vbExclamation, 文件的打开错误ElseIf bDisplay ThenMsgBox 请首先关闭“ & sFileName & ”文件! & Chr(13) & 不能同时打开同名文件,这是Excel的规定!, vbOKOnly + vbExclamation, 文件的打开错误End IfbOpen = TrueOpenExcelFile = -1不能同时打开同名文件,这是Excel的规定End IfEnd IfIf Not bOpen ThenOn Error GoTo errOpenWorkbooks.Open FileName:=sPath & & sFileName, Password:=sPwdOn Error GoTo 0OpenExcelFile = 0成功打开文件End IfExit FunctionerrOpen:If bDisplay Then MsgBox Err.Description, vbOKOnly + vbExclamation, 文件的打开错误OpenExcelFile = -2文件不存在或密码错误On Error GoTo 0End FunctionSub fileproce() Macro5 Macro 宏由 许长安 录制,时间: 2016-2-28MergeArea.Rows.CountMergeArea.Columns.CountRange(B7:B28).Selectrow = ActiveCell.row()col = ActiveCell.Column() Dim i, h As Long Dim row, col, rangrows, countrows As Long i = 0 countrows = ActiveCell.row() MsgBox 当前文件总并行数: & countrows & !rangrows = Cells(row, col).MergeArea.Rows.Count 从B列第7行开始Range(B7:B & rangrows).SelectMsgBox B7当前合并行数: & rangrows & ! row = 7 定义起始行数 col = 2 定义从B列开始Do While row ActiveSheet.UsedRange.Rows.Count() 设定总行数Range(B & row & :B & row).SelectIf Range(B & row).MergeCells Then With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With rangrows = Cells(row, col).MergeArea.Rows.Count 返回当前合并格行数 Selection.UnMerge 撤销合并格 Do While i rangrows - 1 将撤销合并格后空格赋合并前的数值 Range(B & row + i).Select Selection.Copy Range(B & row + i + 1).Select ActiveSheet.Paste i = i + 1 Loop row = row + iEnd Ifi = 0row = row + 1LoopRange(B7).SelectEnd SubSub 读取日成本异常数据() 读取日成本异常数据 Macro 宏由 许长安 录制,时间: 2016-2-25 Range(C7).Select Application.WindowState = xlMaximized Windows(钢后实际价汇总_到钢种.xls).Activate Dim i, h, m, n, j, k As Integer Dim sFullPath As String Dim sFileName As String Dim MyFile As Object col = 17 row = 2 以下测试 日期控件 Cells(1, 13) = DTPicker1.Value MsgBox DTPicker1.Value With ActiveWorkbook.Worksheet MsgBox Sheets(Sheet1).DTPicker1.Value MsgBox CStr(Sheets(Sheet1).DTPicker1.Value) MsgBox Format(Sheets(Sheet1).DTPicker1.Value, yyyymmdd) sFileName = 钢后实际价汇总_到钢种 & Format(Sheets(Sheet1).DTPicker1.Value, yyyymmdd) MsgBox sFileName End With sFileName = 钢后实际价汇总_到钢种 & Format(DTPicker1.Value, yyyymmdd) 指定需要拷贝数据的日期 以上测试日期控件 Set MyFile = CreateObject(Scripting.FileSystemObject) sFullPath = ThisWorkbook.Path 返回当前文件路径 Format(Date, yyyy年m月d日) 当前年月日 oFileName = 钢后实际价汇总_到钢种 oFileName = ActiveWorkbook.Name sFileName = 钢后实际价汇总_到钢种 & Format(Date - 1, yyyymmdd) 指定需要拷贝数据的日期 sFileName = 钢后实际价汇总_到钢种 & Format(Sheets(Sheet1).DTPicker1.Value, yyyymmdd) 指定需要拷贝数据的日期 MsgBox (Prompt ,Buttons ,Title ,Helpfile,Context) MsgBox sFullPath & sFileName & .xls MsgBox 当前打开的文件: & oFileName k = MsgBox(sFullPath & sFileName & .xls, 1, 提示:即将打开的文件!) If k = 2 Then Exit Sub 退出本程序 End If If MyFile.FileExists(sFullPath & & sFileName & .xls) = True Then 判定指定文件是否存在 i = OpenExcelFile(sFullPath, sFileName, 1, ) 打开数据源文件 Else MsgBox 指定文件: & sFileName & 不存在! Exit Sub Application.Quit 退出当前应用程序 End If Windows(sFileName).Activate 激活数据源文件 fileproce 调用过程:处理原始文件 Windows(钢后实际价汇总_到钢种.xls).Activate MsgBox ActiveSheet.UsedRange.Rows.Count() 当前工作表总行数 开始复制数据: j = 7 原始数据表第7行开始 Windows(sFileName & .xls).Activate m = ActiveSheet.UsedRange.Rows.Count() 原始数据表总行数 Windows(oFileName & .xls).Activate n = ActiveSheet.UsedRange.Rows.Count() 目标数据表总行数 Do While j m 31 测试用 实际用 0.05 Or fff 0 And Cells(j, 16).Value And Cells(j, 4).Value Then 数据计较 且不能为空 时 Range(B & j & : & I & j).Select Selection.Copy Windows(oFileName & .xls).Activate Range(B & n + 1).Select ActiveSheet.Paste Windows(sFileName & .xls).Activate Range(P & j & : & Q & j).Select Selection.Copy Windows(oFileName & .xls).Activate Range(J & n + 1).Select Range(J & n + 1 & : & K & n + 1).Select ActiveSheet.Paste 填上颜色 Range(J & n + 1).Select If Format(Cells(n + 1, 10), #,#0.000) 0.1 Or Format(Cells(n + 1, 10), #,#0.000) 0.1 Or Format(Cells(n + 1, 11), #,#0.000) 0.05 Or Format(Cells(n + 1, 11), #,#0.000) -0.05 Then Selection.Interior.ColorIndex = 36 置为黄色 Else Selection.Interior.ColorIndex = 35 置为蓝色 End If Cells(n + 1, 1).Value = Format(Date - 1, yyyymmdd) 记录指定需要拷贝数据的日期 Cells(n + 1, 1).Value = Format(Sheets(Sheet1).DTPicker1.Value, yyyymmdd) 记录指定需要拷贝数据的日期 Range(A & n - 1 & : & A & n - 1).Select Selection.Copy Range(A & n + 1).Select Selection.PasteSpecial Paste:=xlPasteFormats,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核酸检测盒采购合同范本
- 开美容院合伙合同协议书
- 放弃房屋继承公证协议书
- 水务集团战略协议合同书
- 种植合作合同协议书范本
- 智能寄存柜采购合同协议
- 思明区食堂承包协议合同
- 引产赔偿协议书合同范本
- 抗辩书物业服务合同范本
- 承接家政合同协议书范本
- 糖尿病病人饮食健康宣教
- 慢阻肺护理查房
- 儿童健康开学第一课-守护成长,从健康开始
- 支付宝迎新活动策划方案
- 在线教研室活动方案
- 安保日常培训课件
- DB11-T 695-2025 建筑工程资料管理规程
- 1《我三十万大军胜利南渡长江》跨学科公开课一等奖创新教案统编版语文八年级上册
- 工程概算、预算、结算审核报告模板
- 2025至2030年中国不锈钢氢退丝行业投资前景及策略咨询报告
- 《民营经济促进法》全文学习解读
评论
0/150
提交评论