作者:乔山办公网日期:
返回目录:excel表格制作
1、开发工copy具——VB。
2、输入代码:Sub 复制表百() Dim MyBook1 As Workbook Set MyBook1 = Workbooks.Open("C:\Users\Administrator\Desktop\工作表1.xls") Sheets("移动表").Select Sheets("移动表").Copy Before:=Workbooks( _ "工作表2.xls").Sheets(1)MyBook1.CloseEnd Sub。
3、开度发工具——知宏。
4、执行——复制表。
5、如图,复道制完成。
Dim arr
arr = Range("a1:d10") ' 需要复制数值的区抄域,保存结果到数组里面
With workbooks.open("a.xlsx") '打开指定袭的另外的文件
.Sheets("sheet1").Range("a10:d20") = arr '复制值百到另外的区域
.Save
.Close
End With
文件必须度要打开才可以修改,上面的例知子是打开、修改、道保存、关闭。
Sub Copy_Data()
Dim wb As Workbook, rng As Range, sht As Worksheet
Dim sht_Name, theDate
sht_Name = "Sheet1" '假设所有报表e799bee5baa6e4b893e5b19e331文件中的数据都在 Sheet1
Set sht = ActiveSheet '保存当前工作表对象
fn = Dir(ThisWorkbook.Path & "\报表-*.xls", vbReadOnly) '打开第一个报表文件
Do While fn <> "" '开始循环
Set wb = Workbooks.Open(fn) '以只读模式打开报表文件
'取得报表文件中的日期字符串
theDate = Mid(fn, InStr(fn, "\报表-") + 4, Len(fn) - InStr(fn, "\报表-") - 7)
'将报表文件中的数据复制到当前工作表
With wb.Worksheets(sht_Name)
.Range(.Range("A2"), .Range("A1").End(xlToRight).End(xlDown)).Copy _
Destination:=sht.Range("A65536").End(xlUp).Offset(1, 1)
End With
wb.Close (False) '关闭报表文件,不保存
sht.Activate '激活当前工作表
Range(Range("A65536").End(xlUp).Offset(1, 0), Range("B65536").End(xlUp).Offset(0, -1)) = DateValue(Format(theDate, "0000-00-00")) '在A列填充报表文件的日期信息
fn = Dir
Loop '循环下一个报表文件
End Sub
1 .如果使用工作簿知的 SaveAs 方法以 Excel 5.0/95 文件格式道保存包含 Visual Basic for Applications (VBA) 项目的工作簿,则"Microsoft Excel"对话框具有的默认响应为"是";如果将 DisplayAlerts 属性设置为 False,则 Excel 选择的响应为"取消"。
看一下你默认的储存格式是不是变了,所以会出现以前正常现在不正常的情况。
2.sheet6.copy 这一句只有回拷贝却没有目标,所以这一句没有作用。
3.activeworkbook.saveas mypath & myfile, fileformat=xlexcel少了个冒号应该是
activeworkbook.saveas mypath & myfile, fileformat:=xlexcel
4.VBA.MkDir (ThisWorkbook.Path & "/4px")这里的斜杆应该是反了。应该是VBA.MkDir (ThisWorkbook.Path & "\4px")不过我发现VBA真的不严谨,正反好像没有什么影响,答那就无所谓了。