• VBA的几个小Demo_2


    MergeData

    Sub MergeData()
        'ºÏ²¢A¡¢B¡¢C°àMiss
        Dim cc As FileDialog
        
        '´ò¿ª¶Ô»°´°Ñ¡ÔñÏàÓ¦Îļþ
        Set cc = Application.FileDialog(msoFileDialogFilePicker)
        Dim newwork As Workbook
        Set newwork = ThisWorkbook
        
        '¹Ø±ÕÆÁĻˢÐÂ
        Application.ScreenUpdating = False
        With cc
            If .Show = -1 Then
                Dim vrtSelectedItem As Variant
                Dim tempwbrow, xrow As Integer, rng As Range
                For Each vrtSelectedItem In .SelectedItems
                    Dim tempwb As Workbook
                    Set tempwb = Workbooks.Open(vrtSelectedItem)
                    
                    '¹Ø±Õ¸öÈËÒþ˽±£»¤
                    tempwb.RemovePersonalInformation = False
                    
                    'ɾ³ýSummaryµÄÄÚÈݲ¢¸´ÖÆ
                    xrow = newwork.Worksheets("Summary").Range("A1").CurrentRegion.Rows.Count
                    newwork.Worksheets("Summary").Range("A1").Resize(xrow, 5).Delete
                    tempwbrow = tempwb.Worksheets("Summary").Range("A1").CurrentRegion.Rows.Count
                    tempwb.Worksheets("Summary").Range("A1").Resize(tempwbrow, 5).Copy newwork.Worksheets("Summary").Range("A1")
                    
                    'ɾ³ýMissµÄÄÚÈݲ¢¸´ÖÆ
                     If xrow <> 1 Then
                        newwork.Worksheets("Miss").Shapes.SelectAll
                        Selection.Delete
                        newwork.Worksheets("Miss").Range("A1").Resize(xrow, 25).Delete
                        tempwb.Worksheets("Miss").Unprotect
                        tempwbrow = tempwb.Worksheets("Miss").Range("A1").CurrentRegion.Rows.Count
                        tempwb.Worksheets("Miss").Range("A1").Resize(tempwbrow, 25).Copy newwork.Worksheets("Miss").Range("A1")
                    Else
                        tempwb.Worksheets("Miss").Unprotect
                        tempwbrow = tempwb.Worksheets("Miss").Range("A1").CurrentRegion.Rows.Count
                        tempwb.Worksheets("Miss").Range("A1").Resize(tempwbrow, 25).Copy newwork.Worksheets("Miss").Range("A1")
                    End If
                    
                    'ÐÞ¸ÄMissµÚÒ»ÁÐÓÉÎı¾ÖÁÊý×Ö¸ñʽ
                    newwork.Worksheets("Miss").Columns(1).TextToColumns DataType:=xlDelimited, consecutiveDelimiter:=True, Space:=False
                    
                    'Ð޸ıí¸ñ¿í¶È
                    newwork.Worksheets("Miss").Rows.RowHeight = 75
                    newwork.Worksheets("Miss").Rows(1).RowHeight = 20
                    
                    tempwb.Close savechanges:=False
                Next vrtSelectedItem
            End If
        End With
        Set cc = Nothing
        
    
        
        '¼¤»î¡°ÈËÔ±Missͳ¼Æ¡±¹¤×÷±í
        newwork.Worksheets("ÈËÔ±Missͳ¼Æ").Activate
        
        'Ë¢ÐÂËùÓÐÊý¾Ý
        'ActiveWorkbook.RefreshAll
        
        '¹â±êÒƶ¯ÖÁA1µ¥Ôª¸ñ
        'newwork.Worksheets("ÈËÔ±Missͳ¼Æ").Range("A1").Select
        
        'Òþ²ØÎÞ׼ȷÂÊÈËÔ±£¨ÎÞάÐÞµãÊý£©
        xrow = newwork.Worksheets("ÈËÔ±Missͳ¼Æ").Range("F1").CurrentRegion.Rows.Count
        For Each rng In Range("D1").Resize(xrow, 1)
            If rng.Value < 100 Then
               'Òþ²Ø"Total QTY"Ϊ0µÄÐÐ
               rng.EntireRow.Hidden = True
            Else
               'ÏÔʾ"Total QTY"²»Îª0µÄÐÐ
               rng.EntireRow.Hidden = False
            End If
        Next rng
        
        'Òþ²Ø°à¼¶ÎÞάÐÞµãÊýµÄ±íÍ·£¬Ç°Ò»¸öµ¥Ôª¸ñΪ¸÷°à×ÜάÐÞµãÊýµÄµ¥Ôª¸ñ£¬ºóÒ»µ¥Ôª¸ñΪ¸÷°à¶ÔÓ¦µÄ±íÍ·
        Dim A_rng, B_rng, C_rng As Range
        Set A_rng = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("A°à")
        Set B_rng = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("B°à")
        Set C_rng = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("C°à")
        
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        If A_rng.Offset(0, 2).Value < 10 Then Range("D1").EntireRow.Hidden = True
        If B_rng.Offset(0, 2).Value < 10 Then A_rng.Offset(1, 0).EntireRow.Hidden = True
        If C_rng.Offset(0, 2).Value < 10 Then B_rng.Offset(1, 0).EntireRow.Hidden = True
        
    
        
        '´ò¿ªÆÁĻˢÐÂ
        Application.ScreenUpdating = True
        
        
    End Sub

    WeekDaily

    Sub WeekDaily():
    
        Dim i As Integer, n As Range, x As Range
        Dim str, today, day, month, end_month As String
        Application.ScreenUpdating = flase
        
        '''''''''''''''''''''''''±ê¼ÇÐÇÆÚ''''''''''''''''''''''''''
        today = Left(ThisWorkbook.Name, 2) & "/" & Mid(ThisWorkbook.Name, 3, 2)
        str = Application.WorksheetFunction.Text(today, "ddd")
        day = Application.WorksheetFunction.Text(today, "d")
        month = Application.WorksheetFunction.Text(today, "mmm")
        end_month = Application.WorksheetFunction.Text(Application.WorksheetFunction.EoMonth(today, 0), "mm/dd")
        
        
        ''''''''''''''''´¦ÀíÖÜÒ»Êý¾ÝÇ°£¬Çå³ýÉÏÖÜÊý¾Ý'''''''''''''''
        
        If str = "Mon" Then
            ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find("Mon").Offset(1, 0).Resize(4, 7).ClearContents
            'i = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(1).Find("Week").CurrentRegion.Rows.Count
            'ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(1).Find("Week").Offset(2, 3).Resize(i - 2, 14).ClearContents
        End If
        
        ''''''''''''''''´¦Àí1ºÅÊý¾ÝÇ°£¬Çå³ýÉÏÖÜÊý¾Ý'''''''''''''''
        If day = "1" Then
            i = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("1").CurrentRegion.Rows.Count
            ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("1").Offset(1, 0).Resize(i - 1, 31).ClearContents
            'ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Range("B1") = month
        End If
        
        ''''''''''''''''''''¸´ÖÆ׼ȷÂÊÖÁTrend'''''''''''''''''''''''
        
        Dim rng(3) As Range
        Set rng(1) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("A°à")
        Set rng(2) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("B°à")
        Set rng(3) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("C°à")
        
        ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find(str).Offset(1, 0).Resize(4, 1).ClearContents
        For i = 1 To 3
            If rng(i).Offset(0, 2).Value >= 100 Then
                ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find(str).Offset(i, 0) = rng(i).Offset(0, 4).Value
            End If
        Next
        
        ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find(str).Offset(4, 0).FormulaR1C1 = "=AVERAGE(R[-3]C:R[-1]C)"
        
        ''''''''''''''''''''ÈÕ׼ȷÂʸ´ÖÆÖÁÖÜ׼ȷÂÊ''''''''''''''''''
        i = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Range("A1").CurrentRegion.Rows.Count
        ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Range("F1").Resize(i, 1).Copy
        ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find(day).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
        
        
        '''''''''''''''''''''''ÔÂ׼ȷÂʸ´ÖÆÖÁ¸÷ÔÂ''''''''''''''''''''
        If today = end_month Then
            If month = "Jan" Then
                i = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("Jan").CurrentRegion.Rows.Count
                ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("Jan").Offset(1, 0).Resize(i - 1, 12).ClearContents
            End If
            
            i = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("AVE").CurrentRegion.Rows.Count - 1
            ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find("AVE").Offset(1, 0).Resize(i, 1).Copy
            ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find(month).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
            
        End If
        
        
        
        ''''''''''''''''''''''QTY¸´ÖÆÖÁÖÜ׼ȷÂÊ''''''''''''''''''''''
    
        'i = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Range("A1").CurrentRegion.Rows.Count
        'ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Range("D1").Resize(i, 2).Copy
        'ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(1).Find("Week").Row).Find(str).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    
    
        '''''''''''''''ÖÜÈÕ¸´ÖÆÖÜƽ¾ù׼ȷÂÊÖÁ׼ȷÂÊͳ¼Æ±í'''''''''''''
        'If str = "Sun" Then
            'i = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(1).Find("Week").CurrentRegion.Rows.Count - 1
            'ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(1).Find("Week").Offset(1, 19).Resize(i, 1).Copy
            'Set x = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Range("A2")
            'Do While x <> ""
            'Set x = x.Offset(0, 1)
            'Loop
            'x.PasteSpecial Paste:=xlPasteValues
        'End If
        
        
        ''''''''''''''''''¸Ä±äÊý¾ÝchartÑÕÉ«'''''''''''''''''''''''''''
        Dim m, y As Integer
        For i = 1 To 3
        ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").ChartObjects(i).Activate
    
    
        If ActiveChart.SeriesCollection.Count <> 0 Then
            ActiveChart.SeriesCollection(1).DataLabels.Delete
            ActiveChart.SeriesCollection(1).ApplyDataLabels
            y = ActiveChart.SeriesCollection(1).Points.Count
            For m = 1 To y
                ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").ChartObjects(i).Activate
                ActiveChart.SeriesCollection(1).Points(m).DataLabel.Select
                If m <> y Then
                    With Selection.Format.TextFrame2.TextRange.Font
                        .Fill.ForeColor.RGB = RGB(0, 0, 0)
                        .Bold = msoFlase
                    End With
                Else
                    With Selection.Format.TextFrame2.TextRange.Font
                        .Fill.ForeColor.RGB = RGB(0, 176, 80)
                        .Bold = msoTrue
                    End With
                End If
             Next
        End If
        Next
        
        '''''''''''''''''''''''''''´ò¿ªÆÁÄ»¸üÐÂ''''''''''''''''''''''''''''''''''
        Application.ScreenUpdating = flase
        
        ''''''''''''''''''''''''''END'''''''''''''''''''''''''''''''''''
        
    End Sub

    End_Daily

    Sub End_Daily()
    '¸´ÖÆͼ±íÖÁ¡±»ã×Ü¡°²¢ð¤ÌùΪͼƬ
    
        Dim r, g As Range, x, y As Integer
        Dim str, layer, Miss_OP, Miss_Layer As String
        Dim shp As Shape
        Dim m, wid, hig As Integer
        
        '''''''''''''''''''''''''´ò¿ªÆÁÄ»ÏÔʾ'''''''''''''''''''''
        
        Application.ScreenUpdating = False
        
        
        '''''''''''''''''''''''''±ê¼ÇÈÕÆÚ'''''''''''''''''''''''''
        
        str = Application.WorksheetFunction.Text(Left(ThisWorkbook.Name, 2) & "/" & Mid(ThisWorkbook.Name, 3, 2), "mm/dd")
        
        ''''''''''''''''''''''  ±ê¼Ç¸´ÅÐĤ²ã''''''''''''''''''''''
        
        Set r = ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find("Total QTY")
        layer = ""
        r.Offset(1, 2).Resize(5, 1).ClearContents
        For i = 1 To 5
            If r.Offset(i, 0) > 10 Then
                layer = layer & r.Offset(i, -1) & "¡¢"
                r.Offset(i, 2).FormulaR1C1 = "= 1- RC[-1]/RC[-2]"
            End If
        Next
        If layer <> "" Then
            layer = Left(layer, Len(layer) - 1)
        End If
            
        
        '''''''''''''''''''''''''Ð޸ıíÍ·''''''''''''''''''''''''''
        
        ThisWorkbook.Worksheets("»ã×Ü").Range("A2").Value = "BP ÖÆÔ첿 ¼ì²â¿Æ Repair Miss Daily Report£¨" & str & "£©"
        
        ''''''''''''''''''''''' Ð޸ĸ´ÅÐĤ²ã''''''''''''''''''''''''''
        
        ThisWorkbook.Worksheets("»ã×Ü").Range("A9").Value = "Èý¡¢×¼È·ÂÊÊä³ö¡¾¸´ÅÐĤ²ã£º" & layer & "¡¿"
        
        
        ''''''''''''''''''''''¼¤»î»ã×ܹ¤×÷±í'''''''''''''''''''''''
        
        ThisWorkbook.Worksheets("»ã×Ü").Activate
    
        '''''''''''''''''''''ɾ³ý"»ã×Ü"ÖÐÎÞÓÃͼƬ'''''''''''''''''
        
        For Each shp In Worksheets("»ã×Ü").Shapes
            If shp.Type <> msoChart And shp.Type <> msoFormControl Then shp.Delete
        Next
        
        '''''''''''''''''''¸´ÖÆ "Miss ͳ¼Æ"ÖÁÊ×Ò³"'''''''''''''''''
        
        Set r = ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find("Sun").Offset(4, 0)
        ThisWorkbook.Worksheets("Missͳ¼Æ").Range("A1").Resize(r.Row, r.Column).CopyPicture
        ThisWorkbook.Worksheets("»ã×Ü").Range("A5").Select
        wid = Selection.Width
        hig = Selection.Height
        ThisWorkbook.Worksheets("»ã×Ü").Paste Destination:=Worksheets("»ã×Ü").Range("A5")
        With Selection.ShapeRange
            .LockAspectRatio = msoFalse
            .Height = hig - 2
            .Width = wid - 2
            .IncrementLeft 1.5
            .IncrementTop 1.5
        End With
        
        ''''''''''''''''''¸´ÖÆ "ÈËÔ±Missͳ¼Æ"ÖÁÊ×Ò³"''''''''''''''''
        
        Dim rng(3) As Range
        Set rng(1) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("A°à")
        Set rng(2) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("B°à")
        Set rng(3) = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find("C°à")
        
        x = 0
        For i = 1 To 3
            If rng(i).EntireRow.Hidden = 0 And rng(i).Offset(0, 2).Value >= 100 Then
                x = x + 1
                m = 0
                
                '''''''''''''''''''''''''''Ð޸ıíÍ·'''''''''''''''''''''''''''''''''
                
                ThisWorkbook.Worksheets("»ã×Ü").Cells(10 + 4 * (x - 1), 1).Value = x & "¡¢" & rng(i) & "׼ȷÂÊ"
                
                '''''''''''''''''''''''''''ͼƬ¸´ÖÆ'''''''''''''''''''''''''''''''''
                
                If i <> 1 Then
                    m = rng(i).Row - rng(i - 1).Row
                Else
                   m = rng(i).Row
                End If
                    rng(i).Offset(-1 * (m - 1), -1).Resize(m, 13).CopyPicture
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(11 + 4 * (x - 1), 1).RowHeight = rng(i).Height * rng(i).Offset(0, -1)
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(11 + 4 * (x - 1), 1).Select
                    wid = Selection.Width
                    hig = Selection.Height
                    ThisWorkbook.Worksheets("»ã×Ü").Paste Destination:=Worksheets("»ã×Ü").Cells(11 + 4 * (x - 1), 1)
                    With Selection.ShapeRange
                        .LockAspectRatio = msoFalse
                        .Width = wid - 2
                        .Height = hig - 2
                        .IncrementLeft 1.2
                        .IncrementTop 1.5
                    End With
                Application.CutCopyMode = False
                
                
                '''''''''''''''''''''''''°à×é/ÈËÔ±ÄÜÁ¦·ÖÎö''''''''''''''''''''''''''''
                
                Dim row_OPmiss, p_OPmiss, qty_OPmiss As Integer, rng_OPmiss As Range
                
                '''''''''''''''''''''''''ˢи½¼þÊý¾Ý͸ÊÓ±í''''''''''''''''''''''''''
                
                Worksheets("¸½¼þ").PivotTables("Êý¾Ý͸ÊÓ±í1").PivotCache.Refresh
                
                row_OPmiss = ThisWorkbook.Worksheets("¸½¼þ").Range("A1").CurrentRegion.Rows.Count
                Miss_OP = ""
                qty_OPmiss = 0
                
                For Each rng_OPmiss In rng(i).Offset(-1 * (m - 2), 3).Resize(m - 2, 1)
                    If rng_OPmiss.Value > 0 Then
                        qty_OPmiss = qty_OPmiss + 1
                        'MsgBox rng_OPmiss.Offset(0, -3).Value
                        Miss_OP = Miss_OP & rng_OPmiss.Offset(0, -2) & "MissΪ"
                        For p_OPmiss = 1 To row_OPmiss
                            'MsgBox ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 1).Value
                            If ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 1).Value = rng_OPmiss.Offset(0, -3).Value Then
                                If ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 2).Value <> "GA2¿×Remainδ°µµã»¯" Then
                                Miss_OP = Miss_OP & Left(ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 3), 3) & " " & ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 2).Value & "£»"
                                Else
                                Miss_OP = Miss_OP & ThisWorkbook.Worksheets("¸½¼þ").Cells(p_OPmiss, 2).Value & "£»"
                                End If
                            End If
                        Next
                        Miss_OP = Miss_OP & Chr(10)
                    End If
                    
                Next
                If Miss_OP <> "" Then
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(13 + 4 * (x - 1), 1).Value = Miss_OP
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(13 + 4 * (x - 1), 1).RowHeight = 17 * qty_OPmiss
                Else
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(13 + 4 * (x - 1), 1).Value = "ÎÞ ;"
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(13 + 4 * (x - 1), 1).RowHeight = 16
                End If
            End If
         Next
        
        '''''''''''''''''''''''¸ß·¢Miss·ÖÎö''''''''''''''''''''''''
        
        ThisWorkbook.Worksheets("»ã×Ü").Range("A19").Resize(1, 8).ClearContents
        
        x = ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find("Rank").CurrentRegion.Rows.Count - 1
    
        For i = 1 To 4
            For Each r In ThisWorkbook.Worksheets("Missͳ¼Æ").Rows(2).Find("Rank").Resize(x, 1)
                If r = i And r.Offset(0, -1).Value > 0 Then
                    ThisWorkbook.Worksheets("»ã×Ü").Cells(19, 2 * (i - 1) + 1) = r.Offset(0, -2)
                    With ThisWorkbook.Worksheets("Miss")
                        m = .Rows(1).Find("Description").Column
                        .Columns(m).Find(r.Offset(0, -2)).Offset(0, -5).Resize(1, 2).Copy ThisWorkbook.Worksheets("»ã×Ü").Cells(20, 2 * (i - 1) + 1)
                    
                    End With
                    
                    Exit For
                End If
                
            Next
        Next
        '''''''''''''''''''''''Çå³ýͼƬÇøÓò¸ñʽ'''''''''''''''''''''
        
        'ThisWorkbook.Worksheets("»ã×Ü").Range("A20:H20").Interior.ThemeColor = xlThemeColorDark1
        ThisWorkbook.Worksheets("»ã×Ü").Range("A20:H20").Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        Selection.Borders(xlEdgeTop).LineStyle = xlNone
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        With Selection.Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        
        
        ''''''''''''''''''''''''´ò¿ªÆÁÄ»ÏÔʾ''''''''''''''''''''''''
       
        Application.ScreenUpdating = True
        
    End Sub

    J0_Delete

    Sub J0_Delete()
    
    Dim qty_Miss, i, col As Integer
    Dim rng As Range
    Dim str As String
    qty_Miss = ThisWorkbook.Worksheets("Miss").Range("A1").CurrentRegion.Rows.Count
    
    With ThisWorkbook.Worksheets("Miss")
        col = .Rows(1).Find("Description").Column
        str = ""
        For i = 2 To qty_Miss
           If .Cells(i, col).Value = "½ÌÓý" Then
                Set rng = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(2).Find(.Cells(i, 1).Value)
                If rng Is Nothing Then
                    str = str + " " + CStr(.Cells(i, 1))
                    .Cells(i, 1).Value = "OP_ID " + CStr(.Cells(i, 1))
                Else:
                    .Cells(i, 1).Value = rng.Offset(0, 1)
                End If
                .Cells(i, 2).ClearContents
                .Cells(i, col - 1).ClearContents
                .Cells(i, col).ClearContents
           End If
        Next
        If str <> "" Then
            MsgBox (str + "δÕÒµ½")
        End If
    End With
    
    End Sub
        

    Delete&Add_OP_ID

    Sub Delete_OP_ID()
        Dim i As Integer
        Dim str As String
        Dim rng1, rang2 As Range
        Application.ScreenUpdating = False
        i = 3
        Do While ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 13) <> ""
            str = ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 13).Value
            Set rng1 = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(2).Find(str)
            Set rng2 = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find(str)
            If rng1 Is Nothing Or rng2 Is Nothing Then
                MsgBox (str + " No Found")
                Exit Sub
            Else
                rng1.EntireRow.Delete shift:=xlUp
                rng2.EntireRow.Delete shift:=xlUp
            End If
            ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 12).Resize(1, 3).Delete shift:=xlUp
            'i = i + 1
        Loop
        ThisWorkbook.Worksheets("¸½¼þ").Activate
        Application.ScreenUpdating = True
    End Sub
    Sub Add_OP_ID()
        Dim i As Integer
        Dim str As String
        Dim rng1, rang2 As Range
        Application.ScreenUpdating = False
        i = 3
        Do While ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 17) <> ""
            str = ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 17).Value
            Set rng1 = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(2).Find(str)
            Set rng2 = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find(str)
            If rng1 Is Nothing Or rng2 Is Nothing Then
                str = ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 16).Value
                Set rng1 = ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Columns(2).Find(str).Offset(-1, 0)
                Set rng2 = ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Columns(2).Find(str).Offset(-1, 0)
                ThisWorkbook.Worksheets("ÖÜ׼ȷÂÊ").Rows(rng1.Row).Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                ThisWorkbook.Worksheets("ÈËÔ±Missͳ¼Æ").Rows(rng2.Row).Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 16).Resize(1, 3).Copy
                rng1.Offset(-1, -1).PasteSpecial Paste:=xlPasteValues
                rng2.Offset(-1, -1).PasteSpecial Paste:=xlPasteValues
                rng1.Offset(0, 33).AutoFill Destination:=rng1.Offset(-1, 33).Resize(2, 1), Type:=xlFillDefault
                rng2.Offset(0, 2).Resize(1, 4).AutoFill Destination:=rng2.Offset(-1, 2).Resize(2, 4), Type:=xlFillDefault
            Else
                MsgBox (str + " Is Exist")
                Exit Sub
            End If
            ThisWorkbook.Worksheets("¸½¼þ").Cells(i, 16).Resize(1, 3).Delete shift:=xlUp
            'i = i + 1
        Loop
        ThisWorkbook.Worksheets("¸½¼þ").Activate
        Application.ScreenUpdating = True
    End Sub

    绩效和对

    Sub ¼¨Ð§ºË¶Ô()
        
        Dim newwork, oldwork As Workbook
        Dim repair_Count, i, j, x1, x2, y1, y2 As Integer
        Dim x, y As Integer
            
        Set oldwork = ThisWorkbook
        
        Filename = Application.GetOpenFilename("Excel Îļþ ,*.xls;*.xlsx")
        
        If Filename <> False Then
        
            Set newwork = Workbooks.Open(Filename)
            repair_Count = Application.WorksheetFunction.CountIf(newwork.Worksheets("׼ȷÂÊ").Range("E:E"), "Repair")
            flag = newwork.Worksheets("׼ȷÂÊ").Columns("E").Find("Repair").Row
            
            For x = flag To flag + repair_Count - 1
                For y = 1 To 31
                    x1 = x
                    y1 = newwork.Worksheets("׼ȷÂÊ").Rows(2).Find(y).Column
                    
                    
                    x2 = oldwork.Worksheets("ÖÜ׼ȷÂÊ").Columns(2).Find(newwork.Worksheets("׼ȷÂÊ").Cells(x1, 2)).Row
                    y2 = oldwork.Worksheets("ÖÜ׼ȷÂÊ").Rows(1).Find(y).Column
                    
                    If newwork.Worksheets("׼ȷÂÊ").Cells(x1, y1) <> oldwork.Worksheets("ÖÜ׼ȷÂÊ").Cells(x2, y2) Then
                        With oldwork.Worksheets("ÖÜ׼ȷÂÊ").Cells(x2, y2)
                                .FormatConditions.Delete
                                .Font.Color = -16776961
                                .Font.Bold = True
                        End With
                    End If
                Next
            Next
            
            newwork.Close savechanges:=False
        End If
        
    End Sub
    
    Sub Email()
        Application.ScreenUpdating = False
        Dim shp As Shape
        For Each shp In Sheets("Miss").Shapes
            shp.Delete
        Next
        Sheets("»ã×Ü").Range("A2:H22").Copy
        Sheets("»ã×Ü").Range("K1").Select
        Sheets("»ã×Ü").Pictures.Paste.Select
        Selection.Cut
        ThisWorkbook.Close savechanges:=True
        Application.ScreenUpdating = False
    End Sub
  • 相关阅读:
    3DMAX贴图无法显示
    3DMAX2016安装教程【图文】
    OSG学习:转动的小汽车示例
    JAVA Eclipse 快捷键
    解决JQUERY在IE8,7,6下将字符串转成XML对象时产生的BUG
    毕设二:python 爬取京东的商品评论
    redis 注册为服务
    python 爬取bilibili 视频弹幕
    python 爬取36kr 7x24h快讯
    jQuery实现表格冻结行和列
  • 原文地址:https://www.cnblogs.com/taoyucheng/p/10558702.html
Copyright © 2020-2023  润新知