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

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

¦^´_ 32# samwang


·PÁÂsamwang¤j!
§Ú¦A¸Õ¬Ý¬Ý~

TOP

¯Â¤å¦r³B²z~~~

Sub TEST_A1()
Dim xU As Range, Arr, A, V, xR As Range, xD, T$
Set xD = CreateObject("Scripting.Dictionary")
Set xU = [¤u§@ªí1!d:w] '­Y¬O¸óÀÉ, ¥²¶·¥ý¥´¶}¸ÓÀÉ®×, ¦A«ü©w¤u§@ªí¤Î½d³ò
For Each A In Array("¥­Ås", "¥kÁ³±Û", "¥ªÁ³±Û")     
      For Each xR In xU.Find(A, Lookat:=xlWhole).MergeArea   'ª`·N:³o¬O¥H"¦X¨Ö®æ"§ì½d³ò
           xD(V & xR(3)) = xR(2)
    Next
    V = V + 1
Next
'---------------------------
Arr = Range([a1], [a65536].End(3))
For i = 5 To UBound(Arr)
    T = Replace(Replace(Arr(i, 1), "¢X", ""), "¥õ¨¤", "/")
    T = Split(Replace(Replace(T, "RR", "1R"), "LR", "2R") & "Âà", "Âà")(0)
    Arr(i - 4, 1) = xD(T)
Next i
[b5].Resize(UBound(Arr) - 4) = Arr
End Sub


================================

TOP

¥»©«³Ì«á¥Ñ samwang ©ó 2021-9-10 14:46 ½s¿è

¦^´_ 30# wayne0303


R = Range("f65536").End(3).Row >>³o¬Oªí®æ°_©l¦ì¸m¡H©Ò¥H±z³o­Ó¥N½X¨S¦³³]©wªí®æ·j´M½d³ò¤F¡H
Arr = Range("a1:a" & [a65536].End(3).Row)>>³o¬O¨Ó·½°t¹ïÀɦì¸m¡H   
>> #29 µ{¦¡½X¡A¥u¦³°w¹ï§A´£¨ì"§ÚªºÄæ¦C³£·|(¤£¹ïµ¥ªº)¼W¥[" °µ­×§ï¦p¤U¡AÁÙ¦³¤ñ¹ï®É¤@¤p³¡¤À·s¼W¡A¤w¦³¼gµù¸Ñ¤F¡A½Ð¦Û¦æ¬ã¨s¤@¤U¡AÁÂÁÂ

Application.ScreenUpdating = False: Application.DisplayAlerts = False
'FPath = ThisWorkbook.Path  '¥»Àɮתº¸ô®|
'Set WB = Workbooks.Open(FPath & "\²Î­pªí.xlsx") '¶}±Ò¥»Àɮ׸ô®|¤Uªº²Î­pªí
'''°w¹ï"§ÚªºÄæ¦C³£·|(¤£¹ïµ¥ªº)¼W¥["ªº³B²z¡A

With Sheets(1)
    If .FilterMode Then .ShowAllData
    R = Range("f65536").End(3).Row  'FÄæ³Ì«á¤@¦C
    C = Rows("3:" & R).Find("*", searchorder:=xlByColumns, SearchDirection:=xlPrevious).Column '§ä¨ì³Ì«á¤@Äæ
    Arr = Range([f1], Cells(R, C)) '¸ê®Æ¸Ë¤J°}¦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)   '¥kÁ³±Û¸ê®Æ¸Ë¨ì¦r¨å
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)    '¥ªÁ³±Û¸ê®Æ¸Ë¨ì¦r¨å
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)    '¥­Ås¸ê®Æ¸Ë¨ì¦r¨å
97:         Next
        End If
    Next
End With
'WB.Close   'Ãö³¬²Î­pªí

'¤U­±ªº¤W¦¸ªº¤@¼Ë¡A¥u¦³·s¼W¦p¤U

Arr = Range("a1:a" & [a65536].End(3).Row) '­n³Q¤ñ¹ïªº¸ê®Æ
For i = 1 To UBound(Arr)
    If Arr(i, 1) = "" Then GoTo 98 '·s¼W:·íAÄ檺Àx¦s®æµL¸ê®Æ¤£°µ°Ê§@
    If Left(Arr(i, 1), 1) = "L" Or Left(Arr(i, 1), 1) = "R" Then 'AÄæÀx¦s®æªº²Ä1­Ó¦r"L" "R"¤~°Ê§@

        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
....
...

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

¥»©«³Ì«á¥Ñ wayne0303 ©ó 2021-9-10 13:44 ½s¿è

¦^´_ 29# samwang

³sµ²·|Åܦ¨...§ä¤£¨ì(¦pªþ¹Ï)
§âÀɮ׽ƻs¨ì®à­±¥i¥H°õ¦æ¦ý·j´Mµ²ªG¬OªÅ¥Õ...
©Ò¥H°Ý¤@¤U¤j¤j~
R = Range("f65536").End(3).Row >>³o¬Oªí®æ°_©l¦ì¸m¡H©Ò¥H±z³o­Ó¥N½X¨S¦³³]©wªí®æ·j´M½d³ò¤F¡H
Arr = Range("a1:a" & [a65536].End(3).Row)>>³o¬O¨Ó·½°t¹ïÀɦì¸m¡H

¦]¬°±z³o­Ó¥N½X¬O³]©w³sµ²¥~³¡ªí®æ·j´M¡A¦pªG§Ú­n¥ý¥Î¥»¨­ÀÉ®×´ú¸Õ»P¤F¸Ñ¤§«á¦A®M¥Î¥~³¡ªºªí®æ...¨º¸Ó§ï­þÃä©O¡H

ÁÂÁÂ

2021-09-10_133023_New.jpg (19.97 KB)

2021-09-10_133023_New.jpg

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

¦^´_ 27# samwang


  §Ú´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¹ï¶Ü?  >> ÀɦW¬O......\¡³¡³¡³²Î­pªí.xlsx ¡ö³o¼Ë

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

¦^´_ 25# samwang

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

§Ú´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

Âà´«¤å¦r§Î¦¡·j´M_¨Ò1.rar (18.51 KB)

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

        ÀR«ä¦Û¦b : ¤£­nÀH¤ß©Ò±ý¡A­nÀH¤ß±Ð¨|¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD