- ©«¤l
- 5923
- ¥DÃD
- 13
- ºëµØ
- 1
- ¿n¤À
- 5986
- ÂI¦W
- 0
- §@·~¨t²Î
- win10
- ³nÅ骩¥»
- Office 2010
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW°ò¶©
- µù¥U®É¶¡
- 2010-5-1
- ³Ì«áµn¿ý
- 2022-1-23
        
|
¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-2-7 09:21 ½s¿è
¦^´_ 34# iceandy6150
¸U¤V°ª¼Ó,±q¦a°_,§A¤w¦b¥´¦a°ò¤F
¨Ì§Aªº [¹s¥Îª÷²M³æ-¤W¶Ç¥Î.rar] קï¤@¤U- Option Explicit '¥²¶·¸m©ó¼Ò²Õ³»ºÝ ±j¨î«Å§iÅܼÆ
- Private Sub CommandButton1_Click()
- Dim Sh As Worksheet, i As Integer, R As Integer, Rng As Range, xRow As Range
- Application.ScreenUpdating = False
- With Sheets("Á`ªí")
- If .UsedRange.Rows.Count = 1 Then '¨S¦³¾ú¥v¬ö¿ý
- Sheets("Sheet1").UsedRange.Copy '½Æ»s(§t¼ÐÀY)
- .Range("A1").PasteSpecial xlPasteValues
- Else
- Sheets("Sheet1").UsedRange.Offset(1).Copy '½Æ»s(¤£§t¼ÐÀY)
- .Range("A" & .UsedRange.Rows.Count).Offset(3).PasteSpecial xlPasteValues
- 'Offset(3) :ªÅ2¦C->²Ä3¦C¶K¤W
- End If
- End With
- With Sheets("Sheet1")
- .UsedRange.Range("G:G").AdvancedFilter xlFilterCopy, , .Cells(1, .Columns.Count), True
- i = 2
- Do While .Cells(i, .Columns.Count) <> "" '¤u§@ªí³Ì¥kÄ檺Àx¦s®æ <>""
- .Range("A:G").AutoFilter 7, .Cells(i, .Columns.Count) 'AutoFilter: ¦Û°Ê¿z¿ï ,²Ä7Äæ(Ãþ§O)ªº·Ç«h¬° .Cells(i, .Columns.Count)
- Set Rng = Sheets("°Ñ·Óªí").Range("A1:A18").Find(.Cells(i, .Columns.Count)).Offset(, 1)
- Set Sh = Sheets(Ãþ§Oªí(Rng))
- Sh.Activate
- For Each xRow In .AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows '¦Û°Ê¿z¿ï½d³ò¦Cªº¶°¦X
- If xRow.Row > 1 Then
- R = Application.CountA(Sh.[D7:D19]) '¦³¿é¤Jªº¸ê®Æ¼Æ
- With Sh
- .[E3,E29] = xRow.Range("B1") '¤é´Á¥[¶iE3,E29
-
- .[D7].Offset(R).Cells(, 1) = xRow.Range("D1")
- .[D7].Offset(R).Cells(, 5) = xRow.Range("F1")
- .[D7].Offset(R).Cells(, 7) = xRow.Range("E1")
-
- .[D33].Offset(R).Cells(, 1) = xRow.Range("D1")
- .[D33].Offset(R).Cells(, 5) = xRow.Range("F1")
- .[D33].Offset(R).Cells(, 7) = xRow.Range("E1")
- End With
- If Application.CountA(Sh.[D7:D19]) = 13 Then
- Sh.Copy , Sh
- Set Sh = ActiveSheet
- Sh.[D7:J19,D33:J45] = ""
- 'Sh.[D33:J45] = ""
- End If
- End If
- Next
- i = i + 1
- Loop
- .AutoFilterMode = False '**** ¨ú®ø¦Û°Ê¿z¿ï¼Ò¦¡,¸ê®Æ¥þ³¡Åã¥Ü¤U±ªº²M°£¤~¦³®ÄªG*****
- ' .UsedRange.Offset(1) = "'" 'UsedRange: ¤u§@ªíªº¤w¨Ï¥Î½d³ò
- '.Cells(1, .Columns.Count).EntireColumn = "" 'EntireColumn:¾ãÄæ
- '.Cells(1, .Columns.Count).CurrentRegion = "" 'CurrentRegion: ¦³¸ê®Æªº©µ¦ù½d³ò
- ' .Activate
- End With
- Application.ScreenUpdating = True
- End Sub
- Function Ãþ§Oªí(Ãþ§O As Range) As String '¦Ûq¨ç¼Æ: ´M§äÃþ§Oªº¤u§@ªí
- Dim ªí As String, Sh As Worksheet
- For Each Sh In Sheets 'Sheets: ¤u§@ªíªº¶°¦X
- If InStr(Sh.Name, Ãþ§O) = 1 And Application.CountA(Sh.[D7:D19]) = 13 Then 'Ãþ§Oªº¤u§@ªí[D7:D19]¦³¿é¤Jªº¸ê®Æ¼Æ
- ªí = Sh.Name
- ElseIf InStr(Sh.Name, Ãþ§O) = 1 And Application.CountA(Sh.[D7:D19]) < 13 Then
- Ãþ§Oªí = Sh.Name
- Exit For
- End If
- Next
- If Ãþ§Oªí = "" And ªí <> "" Then
- Sheets(ªí).Copy , Sheets(ªí)
- ActiveSheet.[C2] = Ãþ§O.Offset(, 2)
- Ãþ§Oªí = ActiveSheet.Name
- ElseIf Ãþ§Oªí = "" And ªí = "" Then
- '*** §ä¤£¨ìÃþ§Oªº¤u§@ªí ½Æ»s "ªí®æ" ªº½d¥»
- Sheets("ªí®æ½d¥»").Copy Sheets(1)
- ActiveSheet.Name = Ãþ§O
- ActiveSheet.[C2] = Ãþ§O.Offset(, 1)
- Ãþ§Oªí = Ãþ§O
- End If
- End Function
½Æ»s¥N½X |
|