ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

¦h­Ó¤£¦PÀɮפu§@ªí½Æ»s¶°¤¤¶K¨ì1­ÓÀɮ׸̪º¤u§@ªí

¥»©«³Ì«á¥Ñ samwang ©ó 2021-10-18 10:34 ½s¿è

¦^´_ 1# oak0723-1

¦³3­Ó°ÝÃD¡A½Ð½T»{¹ê»Ú»Ý¨D¬°¦ó©ÎªÌ¥i°Ñ¦Ò«á¾Ç«Øij¡AÁÂÁÂ
1. Excel BÄ檺ÀɦW©M¹ê»ÚÀɦW¤£¤@¼Ë(¦³ªÅ¥Õ)®É­n¦p¦ó³B¸m?
2. Excel CÄ檺¤u§@ªí¦WºÙ¦³¼g¿ù®É­n¦p¦ó³B¸m?
3. Excel D¡BEÄæ°_©l/²×¤î¡A­n¥H¿é¤J¬°¥D¶Ü?

«Øij:
1. µ{¦¡ª½±µ¶}±Ò§ì¨ú¨º­Ó¸ê®Æ§¨ªºÀÉ®×
2. ±N©Ò¦³ÀɦW¶K¦Üsheet(¶°¤¤ (¥Ø¿ý)) ªºBÄæ
3. ±NÀɮתºsheet 1¸ê®Æ¶K¦Üsheet(¶°¤¤)¡A±qAÄæ¶}©l¶K¤J¸ê®Æ¨Ì§Ç©¹¥k¶K¨ìÀÉ®×µ²§ô

1.PNG (46.04 KB)

1.PNG

TOP

¦^´_ 1# oak0723-1

B¡BCÄæ¦p¿é¤J¿ù»~«hFÄæ·|Åã¥Ü¿ù»~(±Æ°£BÄæªÅ®æ°ÝÃD)¡A½Ð´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

Sub test()
Dim Arr, Ar(), xD, a, n%, T, sh$, wb As Workbook, ws As Worksheet
Tm = Timer
Application.ScreenUpdating = False
a = ThisWorkbook.Path
Arr = Sheets(1).Range([b1], [c65536].End(3))
fileOrg = ActiveWorkbook.Name
Set xD = CreateObject("Scripting.Dictionary")
Set fs = CreateObject("Scripting.FileSystemObject")
a = ThisWorkbook.Path
Set f = fs.GetFolder(a)
Set fc = f.Files
For Each f1 In fc
    T = Replace(Split(f1.Name, ".")(0), " ", "")
    xD(T) = f1.Path
Next
C = 1
For i = 3 To UBound(Arr)
    T = Replace(Arr(i, 1), " ", "")
    If xD.Exists(T) Then
        Set wb = Workbooks.Open(xD(T))
        sh = Arr(i, 2)
        On Error Resume Next
        Set ws = Worksheets(sh)
        If Err <> 0 Then
            wb.Close
            Sheets(1).Cells(i, 6) = "¤u§@ªí¦WºÙ¦³¿ù»~"
            Err.Clear: GoTo 99
        End If
        With Sheets(sh)
            If .FilterMode Then .ShowAllData
            Drr = .Range(.[m1], .[a65536].End(3))
            s = s + 1
        End With
        wb.Close
        Sheets("¶°¤¤").Cells(1, C).Resize(UBound(Drr), 13) = Drr
        C = C + 13
    Else
        Sheets(1).Cells(i, 6) = "ÀɦW¦³¿ù»~"
    End If
99: Next
Application.ScreenUpdating = True
Set wb = Nothing: Set ws = Nothing
MsgBox Timer - Tm
End Sub

TOP

¦^´_ 5# oak0723-1

À°§Ú¥[¤@­Ó±Æ§Ç¥\¯à¡A¤]´N¬O¨Ì¨C­ÓÀɮ׸ê®Æªº²Ä¤@Ä欰·Ç¥Ñ¤W¦Ü¤U¥Ñ¤p¦Ü¤j
>> ­×§ï¦p¤U¬õ¦r³¡¤À¡AÁÂÁÂ

Sub test()
Dim Arr, Brr, Drr, Ar(), xD, a, n%, T, sh$, wb As Workbook, ws As Worksheet
Tm = Timer
Application.ScreenUpdating = False: Application.DisplayAlerts = False
...
...
...
With Sheets(sh)
            If .FilterMode Then .ShowAllData
            R = .[a65536].End(3).row
            With Range("a7:m" & R)
                Brr = .Value
                .Sort key1:=.Item(1), Order1:=1, Header:=2
            End With
            Drr = .Range("a1:m" & R)
            .Range("a7:m" & R) = Brr
        End With
        wb.Close
        Sheets("¶°¤¤").Cells(1, C).Resize(UBound(Drr), 13) = Drr
        C = C + 13
...
...
..
Application.ScreenUpdating = True: Application.DisplayAlerts = True
Set wb = Nothing: Set ws = Nothing
MsgBox Timer - Tm
End Sub
   

TOP

¦^´_ 7# oak0723-1

¨Ã¨S¦³¥H²Ä¤@Äæ¦ì¬°·Ç¥Ñ¤W¦Ü¤U¥Ñ¤p¦Ü¤j±Æ§Ç³á
>> ¦³¤p¤p±Æ¨ì¤j¦pªþ¥ó¡A§Ú²q¥i¯à¼Æ­È¬Ý¤£¥X¨Ó¡A¤w¸gÂର®É¶¡®æ¦¡¡A½Ð¦A´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

22.PNG (55.19 KB)

22.PNG

TOP

¦^´_ 7# oak0723-1

¹ï¤£°_¡A§Ñ¤FªþÀÉ¡A¤w¸É¤W¡A½Ð¦A´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

¶°¤¤_1020.zip (312.31 KB)

TOP

        ÀR«ä¦Û¦b : ¡i°±º¢¤£«e¡A²×µL©Ò±o¡j¤H³£°g©ó´M§ä©_ÂÝ¡A¦]¦Ó°±º¢¤£«e¡FÁa¨Ï®É¶¡¦A¦h¡B¸ô¦Aªø¡A¤]¤FµL¥Î³B¡A²×µL©Ò±o¡C
ªð¦^¦Cªí ¤W¤@¥DÃD