通補合計程序

Private Sub LetDo_Click()
    Dim name, FilesName, pname As String
    '設置刪選
    
    Dim iloc, Position As String
    Do
        Position = iloc '取得當前檢測到的目標字符的位置
        iloc = InStr(iloc + 1, FilePath1, "\") '測試目標字符在這個字符串中有沒有下個位置,如果沒有就退出
    Loop Until iloc = 0
    FilesName = Right(FilePath1, Len(FilePath1) - Position) '取得文件名稱
    
    On Error Resume Next
    If StrComp(Workbooks(FilesName).name, FilesName, 1) <> 0 Then
        Workbooks.Open (FilePath1) '打開文件
    End If
    Windows(FilesName).Activate
    
    '檢查有所有sheet有沒有符合要求
    Dim Ws As Worksheet
    Dim BName As String
    Dim ExitSheets As Boolean
    ExitSheets = True
    On Error Resume Next
    BName = "通補合計"
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
       ExitSheets = False
    End If
    BName = "收入"
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
       ExitSheets = False
    End If
    BName = "匯款"
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
       ExitSheets = False
    End If
     BName = "網絡開發"
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
       ExitSheets = False
    End If
    BName = "單店產出"
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
       ExitSheets = False
    End If
    
    '進入主處理程序
    If ExitSheets = True Then
        '取消各個sheet的vlookup
    '取消“通補合計”裏的vlookup
        Sheets("通補合計").Select
        Range("C3:G60").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     '取消“收入”裏的vlookup
        Sheets("收入").Select
        Range("D6:E39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("H6:I39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L6:M39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            
    '取消“回款”裏的vlookup
        Sheets("回款").Select
        Range("D6:E39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("H6:I39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L6:M39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        
    '取消“網絡開發”裏的vlookup
        Sheets("網絡開發").Select
        Range("D6:E39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("H6:I39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L6:M39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            
    '取消“單店產出”裏的vlookup
        Sheets("單店產出").Select
        Range("D6:E39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("H6:I39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("L6:M39").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            
        Sheets("sheet1").Select
        Cells.Select
        Selection.Delete
        
        Sheets("收入").Select
        
            Rows("2:5").Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("2:5").Select
            ActiveSheet.Paste
            
        Sheets("回款").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("8:11").Select
            ActiveSheet.Paste
            
        Sheets("網絡開發").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("16:19").Select
            ActiveSheet.Paste
            
        Sheets("單店產出").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("24:27").Select
            ActiveSheet.Paste
            
             
        Dim i As Long
        Dim fgsname, sheetname As String
        For i = 6 To 39
            
        Sheets("收入").Select
        
            fgsname = Range("B" & i).Value
            Rows(i & ":" & i).Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("6:6").Select
            ActiveSheet.Paste
            
        Sheets("回款").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("12:12").Select
            ActiveSheet.Paste
        
            
        Sheets("網絡開發").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("20:20").Select
            ActiveSheet.Paste
            
        Sheets("單店產出").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("28:28").Select
            ActiveSheet.Paste
        
           
            Cells.Select
            Selection.Copy
            Workbooks.Add
            Cells.Select
            ActiveSheet.Paste
            Application.DisplayAlerts = False
               ActiveWorkbook.SaveAs FileName:=FilePath2 & fgsname & "2014年上半年產品總考覈得分.xls", _
                FileFormat:=xlExcel8, WriteResPassword:="", _
                ReadOnlyRecommended:=False, CreateBackup:=False
            sheetname = fgsname & "2014年上半年產品總考覈得分.xls"
            Windows(FilesName).Activate
            Sheets(Array("通補合計")).Select
            Application.CutCopyMode = False
            
            Sheets("通補合計").Select
            Cells.Select
            Selection.Copy
            Workbooks(sheetname).Activate
            
            Sheets.Add After:=ActiveSheet
            Sheets("Sheet2").Select
            Cells(1, 1).Select
            ActiveSheet.Paste
            Sheets("Sheet2").name = "通補合計"
            
        
            Sheets("Sheet1").Select
            Sheets("Sheet1").name = fgsname
            Workbooks(sheetname).Save
            ActiveWorkbook.CheckCompatibility = False
         
            ActiveWindow.Close
             Windows(FilesName).Activate
            

        Next
       
       MsgBox "拆分完成"
    End If
End Sub

Private Sub OpenFile_Click()
    FilePath1 = Application.GetOpenFilename()
End Sub

Private Sub SaveFile_Click()
    '通過打開文件夾的形式取得文件夾路徑
    Dim strPath As String
    Dim MyFileDialog As FileDialog
    Set MyFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    '當對話框關閉時".show=-1"
    If MyFileDialog.Show = -1 Then
    '使用循環顯示選取文件的路徑和名稱
    For Each vrtSelectedItem In MyFileDialog.SelectedItems '遍歷在對話框中選擇的多個文件夾,其實只能選擇一個文件夾
    strPath = vrtSelectedItem
    Next
    End If
    FilePath2 = strPath & "\"
End Sub

Public Function SheetExists(BName As String)
    Dim Ws As Worksheet
    On Error Resume Next
    Set Ws = ActiveWorkbook.Sheets(BName)
    If Ws Is Nothing Then
       MsgBox BName & " 表不存在"
    End If
End Function


Public Function SubCompany()
  
        Sheets("sheet1").Select
        Cells.Select
        Selection.Delete
        
        Sheets("收入").Select
        
            Rows("2:5").Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("2:5").Select
            ActiveSheet.Paste
            
        Sheets("回款").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("8:11").Select
            ActiveSheet.Paste
            
        Sheets("網絡開發").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("16:19").Select
            ActiveSheet.Paste
            
        Sheets("單店產出").Select
        
            Rows("2:5").Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("24:27").Select
            ActiveSheet.Paste
            
             
        Dim i As Long
        Dim fgsname, sheetname As String
        For i = 6 To 39
            
        Sheets("收入").Select
        
            fgsname = Range("B" & i).Value
            Rows(i & ":" & i).Select
            Application.CutCopyMode = False
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("6:6").Select
            ActiveSheet.Paste
            
        Sheets("回款").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("12:12").Select
            ActiveSheet.Paste
        
            
        Sheets("網絡開發").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("20:20").Select
            ActiveSheet.Paste
            
        Sheets("單店產出").Select
        
            Rows(i & ":" & i).Select
            Selection.Copy
            Sheets("Sheet1").Select
            Rows("28:28").Select
            ActiveSheet.Paste
        
           
            Cells.Select
            Selection.Copy
            Workbooks.Add
            Cells.Select
            ActiveSheet.Paste
            ActiveWorkbook.SaveAs FileName:=FilePath2 & fgsname & "2014年上半年產品總考覈得分.xlsx", _
                FileFormat:=xlExcel12, WriteResPassword:="", _
                ReadOnlyRecommended:=False, CreateBackup:=False
            sheetname = fgsname & "2014年上半年產品總考覈得分.xlsx"
            Windows(FilesName).Activate
            Sheets(Array("通補合計")).Select
            Application.CutCopyMode = False
            
            Sheets("通補合計").Select
            Cells.Select
            Selection.Copy
            Workbooks(sheetname).Activate
            
            Sheets.Add After:=ActiveSheet
            Sheets("Sheet2").Select
            Cells(1, 1).Select
            ActiveSheet.Paste
            Sheets("Sheet2").name = "通補合計"
            
        
            Sheets("Sheet1").Select
            Sheets("Sheet1").name = fgsname
            Workbooks(sheetname).Save
            ActiveWorkbook.CheckCompatibility = False
         
            ActiveWindow.Close
            
            Windows(FilesName).Activate

        Next
End Function


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章