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

[µo°Ý] Âà´«¤å¦r§Î¦¡·j´M

¦^´_ 1# wayne0303

¤£¦n·N«ä¬Ý¤£¤ÓÀ´¡A¥i§_¸ÑÄÀ¸Ô²Ó¤@ÂI¡AÁÂÁÂ

TOP

¦^´_ 3# wayne0303

½Ð´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

Sub test()
Dim Arr, xD, T$, w1$, w2$, i&, j&, k%
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range("d3:w16")
For i = 2 To UBound(Arr) Step 6
    k = k + 1
    For j = 1 To UBound(Arr, 2)
        T = Arr(i, j): If T = "" Then GoTo 99
        xD(T & "_" & k) = Arr(i - 1, j)
    Next j
99: Next i
Arr = Range("a5:a" & [a5].End(4).Row)
For i = 1 To UBound(Arr)
    w1 = Left(Arr(i, 1), 1)
    w2 = Mid(Arr(i, 1), 2, 1)
    If Asc(w1) > 64 And Asc(w1) < 123 And Asc(w2) > 64 And Asc(w2) < 123 Then
        If UCase(w1) = "L" Then
            T = Mid(Arr(i, 1), 2, 4) & "/" & Mid(Arr(i, 1), 8, 2) & "_" & 2
            Arr(i, 1) = xD(T)
        End If
        If UCase(w1) = "R" Then
            T = Mid(Arr(i, 1), 2, 4) & "/" & Mid(Arr(i, 1), 8, 2) & "_" & 1
            Arr(i, 1) = xD(T)
        End If
    Else
        T = Left(Arr(i, 1), 4) & "_" & 3
        Arr(i, 1) = xD(T)
    End If
Next
Range("b5").Resize(UBound(Arr)) = Arr
End Sub

TOP

¥»©«³Ì«á¥Ñ samwang ©ó 2021-8-31 07:19 ½s¿è
¦^´_  samwang

³ø§isamwang¤j¡I
  §Ú°õ¦æ§¹¨SªF¦è吔...

R¬O3~4¦ì¼Æ¦r
wayne0303 µoªí©ó 2021-8-30 23:54


¦pªþ¥ó¹Ï¤ù¡A§Ú°õ¦æ¨S°ÝÃD¨Ì¾Ú4#µ{¦¡½X¡Aµ²ªG¦bBÄæ¡A½Ð¦A½T»{¡AÁÂÁ¡C

Â^¨ú1.PNG (137.39 KB)

Â^¨ú1.PNG

TOP

¦^´_ 13# wayne0303

½Ð¦A´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

   1.¦p¹Ï²{¦b¹J¨ì¥õ¨¤¬O­Ó¦ì¼Æ¦r¸òR¬°4¦ì¼Æ¦r´N·j´M¤£¨ì  >> ¤w§ó·s¦pªþ¥ó
   2.¦pªG§Úªºªí®æ¬O¥²»Ý¤Þ¥Î¨ì¥~³¡ªºªí®æ¨º§Ú­n§ï¥N½Xªº­þÃä©O¡H >> µ{¦¡½X¦³³Æµù»Ý­n§ó§ïªº¦a¤è(²Ä1¬q)
   3.¥Î"¼Ò²Õ"ªº¸Ü¦³¿ìªk«ö­Ó·Æ¹«ªº¥kÁä©Î¥ªÁä´N§ó·s¼Æ­È ©Î¬O ¼Æ­È¦³Åܧó´N¥i¥ß§Y§ó·s¼Æ­È(¤£»ÝÃö±¼ÀɮצA¶})¡H  >>¤w§ó·s¡A·íA5~A65536¦³§ó·s·|¦Û°Ê§ó·s

Âà´«¤å¦r§Î¦¡·j´M_0831.zip (394.62 KB)

TOP

¦^´_  samwang


samwang¤j¤j~

2.¦pªG§Úªºªí®æ¬O¥²»Ý¤Þ¥Î¨ì¥~³¡ªºªí®æ¨º§Ú­n§ï¥N½Xªº­þÃä©O¡H ³o­Ó ...
wayne0303 µoªí©ó 2021-8-31 19:37


­×§ï¦p¬õ¦r³¡¤À¡A½Ð´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ
Sub §ó·s()
Dim Arr, xD, T1$, T2$, T$, w1$, w2$, i&, j&, k%
Set xD = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set WB = Workbooks.Open("D:\¸ê®Æ§¨123\¬¡­¶Ã¯abc.xlsx")

Arr = Range("d3:w16")
WB.Close

For i = 2 To UBound(Arr) Step 6
    k = k + 1
    For j = 1 To UBound(Arr, 2)
        T = Arr(i, j): If T = "" Then GoTo 99
        xD(T & "_" & k) = Arr(i - 1, j)
    Next j
99: Next i
....
...
....

TOP

¦^´_ 22# wayne0303

§ÚªºÄæ¦C³£·|(¤£¹ïµ¥ªº)¼W¥[ >> ¥i¥H´£¨Ñ¹ê»Ú®×¨Ò½d¨Ò¡A¥B»¡©ú¦ó¿×¤£¹ïµ¥¼W¥[? ÁÂÁÂ
   
ÁÙ¦³³sµ²¥~³¡ªí®æªº®É­Ô·|¥X²{°õ¦æ¶¥¬q¿ù»~'1004':  >> ½Ð´£¨Ñ½d¨Ò¡AÁÂÁÂ

TOP

¦^´_ 24# wayne0303

§ÚªºÄæ¦C³£·|(¤£¹ïµ¥ªº)¼W¥[
>>½Ð°Ý±zªº¸ê®Æ¬O±qKÄæ¶}©l¶Ü? 3­Ó¸ê®Æªº¤¤¶¡¤£·|¦³¨ä¥¦ªº¸ê®Æ¹ï§a?

§Ú´N¬O§â³oÃ䪺¸ô®|§ï¦¨¤½¥qªº°Ïºô¸ÌªºÀɮ׸ô®|¦Ó¤wSet WB = Workbooks.Open("¤½¥q¸ô®|")
>>¦p±z¼gªºSet WB = Workbooks.Open("¤½¥q¸ô®|")¡A¤½¥q¸ô®|´N´«¦¨¹ê»Úªº¸ô®|§Y¥i

TOP

¦^´_ 26# wayne0303

§Ú´N¬O§â³oÃ䪺¸ô®|§ï¦¨¤½¥qªº°Ïºô¸ÌªºÀɮ׸ô®|¦Ó¤wSet WB = Workbooks.Open("¤½¥q¸ô®|")
>>¦p±z¼gªºSet WB = Workbooks.Open("¤½¥q¸ô®|")¡A¤½¥q¸ô®|´N´«¦¨¹ê»Úªº¸ô®|§Y¥i>>¤½¥q¸ô®|´N¬OÀɮשñ¸mªº¦ì¸m
>> ÀɦW¬O......\¬¡­¶Ã¯abc.xlsx¡A¹ï¶Ü?

TOP

¦^´_ 28# wayne0303

½Ð´ú¸Õ¬Ý¬Ý¡AÁÂÁÂ

Sub test()
Dim Arr, xD, T1$, T2$, T$, w1$, w2$, i&, j&, k%, R%, C%
Set xD = CreateObject("Scripting.Dictionary")
Set fs = CreateObject("Scripting.FileSystemObject")
Application.ScreenUpdating = False: Application.DisplayAlerts = False
FPath = ThisWorkbook.Path
Set WB = Workbooks.Open(FPath & "\²Î­pªí.xlsx")
With Sheets(1)
    If .FilterMode Then .ShowAllData
    R = Range("f65536").End(3).Row
    C = Rows("3:" & R).Find("*", searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Arr = Range([f1], Cells(R, C))
    For i = 1 To UBound(Arr)
        If InStr(Arr(i, 1), "¥kÁ³") Then
            For j = 1 To UBound(Arr, 2)
                T = Arr(i + 2, j): If T = "" Then GoTo 95
                xD(T & "_1") = Arr(i + 1, j)
95:         Next
        ElseIf InStr(Arr(i, 1), "¥ªÁ³") Then
            For j = 1 To UBound(Arr, 2)
                T = Arr(i + 2, j): If T = "" Then GoTo 96
                xD(T & "_2") = Arr(i + 1, j)
96:         Next
        ElseIf InStr(Arr(i, 1), "¥­") Then
            For j = 1 To UBound(Arr, 2)
                T = Arr(i + 2, j): If T = "" Then GoTo 97
                xD(T & "_3") = Arr(i + 1, j)
97:         Next
        End If
    Next
End With
WB.Close
Arr = Range("a1:a" & [a65536].End(3).Row)
For i = 1 To UBound(Arr)
    If Arr(i, 1) = "" Then GoTo 98
    If Left(Arr(i, 1), 1) = "L" Or Left(Arr(i, 1), 1) = "R" Then
        w1 = Left(Arr(i, 1), 1): w2 = Mid(Arr(i, 1), 2, 1)
        If Asc(w1) > 64 And Asc(w1) < 123 And Asc(w2) > 64 And Asc(w2) < 123 Then
            If UCase(w1) = "L" Then
                T1 = Mid(Split(Arr(i, 1), "¥õ")(0), 2)
                T2 = Split(Split(Arr(i, 1), "¨¤")(1), "¢X")(0)
                T = T1 & "/" & T2 & "_" & 2: Arr(i, 1) = xD(T)
            End If
            If UCase(w1) = "R" Then
                T1 = Mid(Split(Arr(i, 1), "¥õ")(0), 2)
                T2 = Split(Split(Arr(i, 1), "¨¤")(1), "¢X")(0)
                T = T1 & "/" & T2 & "_" & 1: Arr(i, 1) = xD(T)
            End If
        Else
            T = Split(Arr(i, 1), "Âà")(0) & "_" & 3: Arr(i, 1) = xD(T)
        End If
    End If
98: Next
Range("b1").Resize(UBound(Arr)) = Arr
Application.ScreenUpdating = True: Application.DisplayAlerts = True
End Sub

TOP

¦^´_ 30# wayne0303

¦]¬°±z³o­Ó¥N½X¬O³]©w³sµ²¥~³¡ªí®æ·j´M¡A¦pªG§Ú­n¥ý¥Î¥»¨­ÀÉ®×´ú¸Õ»P¤F¸Ñ¤§«á¦A®M¥Î¥~³¡ªºªí®æ...¨º¸Ó§ï­þÃä©O¡H
>> #20 ´N¦³»¡©ú¹L¤F¡A¤U­±¨º3­Ó²¾°£§Y¥i
'FPath = ThisWorkbook.Path
'Set WB = Workbooks.Open(FPath & "\²Î­pªí.xlsx")
...
...
'WB.Close

TOP

        ÀR«ä¦Û¦b : §g¤l¬°¥Ø¼Ð¡A¤p¤H¬°¥Øªº¡C
ªð¦^¦Cªí ¤W¤@¥DÃD