VBA 复制工作簿内容
2016-04-06 09:19
267 查看
Sub CopyData() hh = MsgBox("Confirm to refresh?", vbOKCancel, "Confirm") If hh = 1 Then Application.ScreenUpdating = False Dim s_wb As Workbook, t_wb As Workbook, ws2 As Worksheet 'MsgBox ("Checkpoint 1 OK") 'Check if all workbook & worksheet exists For i = 3 To Worksheets(1).Range("A65536").End(xlUp).Row s_filepath = Worksheets(1).Range("B" & i).Value s_filename = Worksheets(1).Range("C" & i).Value s_sheetname = Worksheets(1).Range("D" & i).Value s_range = Worksheets(1).Range("E" & i).Value t_filepath = Worksheets(1).Range("F" & i).Value t_filename = Worksheets(1).Range("G" & i).Value t_sheetname = Worksheets(1).Range("H" & i).Value t_range = Worksheets(1).Range("I" & i).Value 'Check file existence If Dir(s_filepath & "\" & s_filename) = "" Then MsgBox ("Source document " & s_filepath & "\" & s_filename & " not exists") Exit Sub End If If Dir(t_filepath & "\" & t_filename) = "" Then MsgBox ("Target document " & t_filepath & "\" & t_filename & " not exists") Exit Sub End If 'Check if worksheets exists Set s_wb = Workbooks.Open(s_filepath & "\" & s_filename) Set t_wb = Workbooks.Open(t_filepath & "\" & t_filename) On Error Resume Next If s_wb.Sheets(s_sheetname) Is Nothing Then MsgBox ("Source worksheet " & s_sheetname & " not exists") s_wb.Close False t_wb.Close False Exit Sub End If On Error Resume Next If t_wb.Sheets(t_sheetname) Is Nothing Then MsgBox ("Target worksheet " & t_sheetname & " not exists") s_wb.Close False t_wb.Close Falses Exit Sub End If s_wb.Close False t_wb.Close False Next i 'MsgBox ("Checkpoint 2 OK") 'Start update if files all exists For i = 3 To Worksheets(1).Range("A65536").End(xlUp).Row s_filepath = Worksheets(1).Range("B" & i).Value s_filename = Worksheets(1).Range("C" & i).Value s_sheetname = Worksheets(1).Range("D" & i).Value s_range = Worksheets(1).Range("E" & i).Value t_filepath = Worksheets(1).Range("F" & i).Value t_filename = Worksheets(1).Range("G" & i).Value t_sheetname = Worksheets(1).Range("H" & i).Value t_range = Worksheets(1).Range("I" & i).Value 'Update worksheet raw Set s_wb = Workbooks.Open(s_filepath & "\" & s_filename) Set t_wb = Workbooks.Open(t_filepath & "\" & t_filename) t_wb.Sheets(t_sheetname).Cells.ClearContents s_wb.Sheets(s_sheetname).Cells.Copy t_wb.Sheets(t_sheetname).Range("a1") t_wb.Save t_wb.Close s_wb.Close False Next i Set s_wb = Nothing Set t_wb = Nothing Application.ScreenUpdating = True MsgBox ("Refresh is done!") 'sa = MsgBox("Save this file?", vbOKCancel, "Save") 'If sa = 1 Then 'ThisWorkbook.Save 'End If Else Exit Sub End If End Sub
相关文章推荐
- 安装Orcale VBox虚拟机必须注意的问题
- VBS脚本常用经典代码收集
- VB中的排序问题 15个
- VB病毒
- Excel vba使用正则表达式处理联通官网导出的通话详单
- 关于vb 多任意数字大小排列问题
- VB.OCR.汉明距离
- How to play .rmvb files in Ubuntu
- VB 2010中Excel文件处理的一个奇怪问题
- 解决vbe6ext.olb不能被加载 内存溢出 问题
- VB中的空格函数
- s4:VB之如何更改排序的数字的数量
- S3:VB之15个数的排序(简化版)
- s2:VB之如何在15个数中把最小的数放在最后
- qlikview使用VBS导出透视表
- [水]用vb写了个PCB
- 关于VB里判断逻辑的一个说明
- VB程序破解
- Word自定义宏实现全文拼音标注
- 今日学习VB所感