Sửa dùm em Code tại sao copy cứ bị màu đỏ, sửa không được

Liên hệ QC

Dauthivan

Thành viên tiêu biểu
Tham gia
15/8/08
Bài viết
565
Được thích
327
PHP:
Sub Loc()
    Dim Arr(), DL(), KQ(), Dongcuoi As Long, i As Long, j As Long, m As Long
    On Error Resume Next
    i = Sheets("Loc").Index
NextStep:
    If i = 0 Then Sheets.Add.Name = "Loc"
    Sheets("Loc").Move Before:=Sheets(1)
    With Sheets("THop")
        .[1:4].Copy Sheets("Loc").[A1]
        Dongcuoi = .[A65000].End(xlUp).Row
        DL = .Range("A5:J" & Dongcuoi).Value
    End With
    ReDim KQ(1 To UBound(DL, 1), 1 To UBound(DL, 2))
    Arr = Array(211111, 211211, 291111, 702111, 211121, 211221, 291121, 702114, 214111, 214211, 211161, 211261, 291161, 702112, 211171, 211271, 291171, 702113, 214161, 214261, 212121, 212221, 292121, 702121, 215121, 215221, 212161, 212261, 292161, 702124, 215161, 215261, 213121, 213221, 293121, 702131, 216121, 216221, 213161, 213261, 293161, 702134, 216161, 216261, 275171, 275271, 702192, 266111, 266211, 293171, 702141, 275131, 275231, 702181, 275141, 275241, 702182, 241361, 702211, 242361, 256111, 256211, 494281, 275111, 275211, 29, 702161, 275181, 275281, 702191, 275121, 275221, 702171, 275151, 275251, 702151, 275161, 275261, 252171, 252271, 494171, 253111, 253211, 292151, 494111, 253191, 253291, 494181, 714113, 251111, 251211, 293181, 494151, 254111, 254211, 494251, 252111, 252211, 293141, 494141, 497141, 714111, 255111, 255211, 293142, 494241, 497241, 253121, 253221, 292152, 702172, 372211, 372111, 371111, 371211, 211311, 211321, 214311, 211361, 211371, 214361, 212321, 215321, 212361, 215361, 213321, 216
    321,
    213361, 216361, 275371, 266311, 275331, 275341, 241461, 242461, 256311, 275311, 275381, 275321, 275351, 275361, 252371, 253311, 253391, 251311, 254311, 252311, 255311, 253321, 371121, 371221, 211411, 211421, 214411, 211461, 211471, 214461, 212421, 215421, 212461, 215461, 213421, 216421, 213461, 216461, 275471, 266411, 275431, 275441, 241561, 242561, 256411, 275411, 275481, 275421, 275451, 275461, 252471, 253411, 253491, 251411, 254411, 252411, 255411, 253421, 211511, 211521, 214511, 211561, 211571, 214561, 212521, 215521, 212561, 215561, 213521, 216521, 213561, 216561, 275571, 266511, 275531, 275541, 256511, 275511, 275581, 275521, 275551, 275561, 252571, 253511, 253591, 251511, 254511, 252511, 255511, 253521)
    Set Dic = CreateObject("Scripting.Dictionary")
    For i = 0 To UBound(Arr, 1)
        Tmp = Arr(i)
        If Not Dic.Exists(Tmp) Then Dic.Add Tmp, ""
    Next
    For j = 1 To UBound(DL, 1)
        If Dic.Exists(DL(j, 2)) Then
            m = m + 1
            For i = 1 To 10
                KQ(m, i) = DL(j, i)
            Next
        End If
    Next
    With Sheets("Loc")
        .Range("A5:J1000").ClearContents
        .[A5].Resize(m, 10).Value = KQ
    End With
End Sub
End Sub

Chẳng hiểu có phải do Arr có quá nhiều phần tử không mà khi Copy Code vào nó cứ bị màu đỏ, sửa kiểu gì cũng không được, nhờ mọi người giúp cho
 
Chỉnh sửa lần cuối bởi điều hành viên:
Dài quá thì xuống dòng thôi:
PHP:
Sub Loc()
    Dim Arr(), DL(), KQ(), Dongcuoi As Long, i As Long, j As Long, m As Long
    On Error Resume Next
    i = Sheets("Loc").Index
NextStep:
    If i = 0 Then Sheets.Add.Name = "Loc"
    Sheets("Loc").Move Before:=Sheets(1)
    With Sheets("THop")
        .[1:4].Copy Sheets("Loc").[A1]
        Dongcuoi = .[A65000].End(xlUp).Row
        DL = .Range("A5:J" & Dongcuoi).Value
    End With
    ReDim KQ(1 To UBound(DL, 1), 1 To UBound(DL, 2))
    Arr = Array(211111, 211211, 291111, 702111, 211121, 211221, 291121, 702114, 214111, _
                214211, 211161, 211261, 291161, 702112, 211171, 211271, 291171, 702113, _
                214161, 214261, 212121, 212221, 292121, 702121, 215121, 215221, 212161, _
                212261, 292161, 702124, 215161, 215261, 213121, 213221, 293121, 702131, _
                216121, 216221, 213161, 213261, 293161, 702134, 216161, 216261, 275171, _
                275271, 702192, 266111, 266211, 293171, 702141, 275131, 275231, 702181, _
                275141, 275241, 702182, 241361, 702211, 242361, 256111, 256211, 494281, _
                275111, 275211, 29, 702161, 275181, 275281, 702191, 275121, 275221, 702171, _
                275151, 275251, 702151, 275161, 275261, 252171, 252271, 494171, 253111, _
                253211, 292151, 494111, 253191, 253291, 494181, 714113, 251111, 251211, _
                293181, 494151, 254111, 254211, 494251, 252111, 252211, 293141, 494141, _
                497141, 714111, 255111, 255211, 293142, 494241, 497241, 253121, 253221, _
                292152, 702172, 372211, 372111, 371111, 371211, 211311, 211321, 214311, _
                211361, 211371, 214361, 212321, 215321, 212361, 215361, 213321, 216321, _
                213361, 216361, 275371, 266311, 275331, 275341, 241461, 242461, 256311, _
                275311, 275381, 275321, 275351, 275361, 252371, 253311, 253391, 251311, _
                254311, 252311, 255311, 253321, 371121, 371221, 211411, 211421, 214411, _
                211461, 211471, 214461, 212421, 215421, 212461, 215461, 213421, 216421, _
                213461, 216461, 275471, 266411, 275431, 275441, 241561, 242561, 256411, _
                275411, 275481, 275421, 275451, 275461, 252471, 253411, 253491, 251411, _
                254411, 252411, 255411, 253421, 211511, 211521, 214511, 211561, 211571, _
                214561, 212521, 215521, 212561, 215561, 213521, 216521, 213561, 216561, _
                275571, 266511, 275531, 275541, 256511, 275511, 275581, 275521, 275551, _
                275561, 252571, 253511, 253591, 251511, 254511, 252511, 255511, 253521)
    Set Dic = CreateObject("Scripting.Dictionary")
    For i = 0 To UBound(Arr, 1)
        Tmp = Arr(i)
        If Not Dic.Exists(Tmp) Then Dic.Add Tmp, ""
    Next
    For j = 1 To UBound(DL, 1)
        If Dic.Exists(DL(j, 2)) Then
            m = m + 1
            For i = 1 To 10
                KQ(m, i) = DL(j, i)
            Next
        End If
    Next
    With Sheets("Loc")
        .Range("A5:J1000").ClearContents
        .[A5].Resize(m, 10).Value = KQ
    End With
End Sub
Thử lại xem
 
Lần chỉnh sửa cuối:
Upvote 0
Chỗ này:
... 215361, 213321, 216
321
,


Do cửa sổ VBA hết chỗ nó tự xuống dòng

Chỗ này:
321,
213361, 216361, 275371,

Là tự ý Enter xuống dòng

Các kiểu xuống dòng đó đều không được phép.

Muốn xuống dòng thì phải làm đúng cách:
- Chỉ được phép xuống dòng ngay sau dấu phẩy, sau dấu đóng ngoặc đơn ), sau dấu đóng ngoặc kép ", dấu nối chuỗi &, ...
- Trước khi xuống dòng phải có 1 khoảng trắng và 1 ký tự _
 
Upvote 0
Web KT

Bài viết mới nhất

Đếm ngược thời gian

000
Ngày
00
Giờ
00
phút
00
giây
Back
Top Bottom