Nhờ chỉ chỗ sai của code (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Phanbavinh

Thành viên mới
Tham gia
29/8/13
Bài viết
31
Được thích
0
Chào mọi người,
Mình đang viết cái code trong VBA, chạy cũng khá mượt nhưng mà bị báo lỗi.
Mong mọi người chỉ giúp, cần thì mình sẽ upload file lên
Code mình viết như bên dưới:
PHP:
Sub AdFilter()
Dim i As Integer, Loc As Range
    Range("U24:AA29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("U20:U21"), CopyToRange:=Range("U23:AA29"), Unique:=False
    Range("AE24:AK29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("AE20:AE21"), CopyToRange:=Range("AE23:AK29"), Unique:=False
    Range("AP24:AV29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("AP20:AP21"), CopyToRange:=Range("AP23:AV29"), Unique:=False
    Range("K24:S29").Select
    Selection.ClearContents
    With Sheets("VP")
    For i = 24 To 29 Step 1
        Set Loc = .Range("AP23:AV29").Find(.Range("AF" & i), LookIn:=xlValues)
        If Loc Is Nothing Then
            .Range("K" & i).Value = .Range("AE" & i)
            .Range("L" & i).Value = .Range("AF" & i)
            .Range("M" & i).Value = .Range("AG" & i)
            .Range("N" & i).Value = .Range("AH" & i)
            .Range("O" & i).Value = .Range("AI" & i)
            .Range("P" & i).Value = .Range("AJ" & i)
            .Range("Q" & i).Value = .Range("AK" & i)
            .Range("R" & i).Value = .Range("AL" & i)
            .Range("S" & i).Value = (.Range("R" & i) - .Range("P" & i)) * .Range("O" & i)
        Else
            If Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False) < .Range("AI" & i) Then
                .Range("K" & i).Value = .Range("AE" & i)
                .Range("L" & i).Value = .Range("AF" & i)
                .Range("M" & i).Value = .Range("AG" & i)
                .Range("N" & i).Value = .Range("AH" & i)
                .Range("O" & i).Value = .Range("AI" & i) - Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False)
                .Range("P" & i).Value = .Range("AJ" & i)
                .Range("Q" & i).Value = .Range("O" & i) * .Range("P" & i)
                .Range("R" & i).Value = .Range("AL" & i)
                .Range("S" & i).Value = (.Range("R" & i) - .Range("P" & i)) * .Range("O" & i)
            Else
            End If
        End If
    Next i
    End With
End Sub
 
Lần chỉnh sửa cuối:
Code của mình khi chạy báo lỗi đoạn này nek
PHP:
If Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False) < .Range("AI" & i) Then
 
Upvote 0
Code của mình khi chạy báo lỗi đoạn này nek
PHP:
If Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False) < .Range("AI" & i) Then
Hàm VLOOKUP nếu nó tìm không ra địa chỉ tham chiếu thì nó sẽ báo lỗi #N/A, vì vậy với đoạn code trên gặp trường hợp này thì sẽ báo lỗi.
 
Upvote 0
Mình sửa lại một chút code cho bạn nào tham khảo:
PHP:
Sub AdFilter()
Dim i As Integer, Loc As Range
    Range("U24:AA29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("U20:U21"), CopyToRange:=Range("U23:AA29"), Unique:=False
    Range("AE24:AK29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("AE20:AE21"), CopyToRange:=Range("AE23:AK29"), Unique:=False
    Range("AP24:AV29").Select
    Selection.ClearContents
    Range("Table1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("AP20:AP21"), CopyToRange:=Range("AP23:AV29"), Unique:=False
    Range("K24:S29").Select
    Selection.ClearContents
    With Sheets("VP")
    For i = 24 To 29 Step 1
        Set Loc = .Range("AP23:AV29").Find(.Range("AF" & i), LookIn:=xlValues)
        If Loc Is Nothing Then
            .Range("K" & i).Value = .Range("AE" & i)
            .Range("L" & i).Value = .Range("AF" & i)
            .Range("M" & i).Value = .Range("AG" & i)
            .Range("N" & i).Value = .Range("AH" & i)
            .Range("O" & i).Value = .Range("AI" & i)
            .Range("P" & i).Value = .Range("AJ" & i)
            .Range("Q" & i).Value = .Range("AK" & i)
            .Range("R" & i).Value = .Range("AL" & i)
            .Range("S" & i).Value = (.Range("R" & i) - .Range("P" & i)) * .Range("O" & i)
        Else
            If .Range("AE" & i) <> 0 Then
                If Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False) < .Range("AI" & i) Then
                    .Range("K" & i).Value = .Range("AE" & i)
                    .Range("L" & i).Value = .Range("AF" & i)
                    .Range("M" & i).Value = .Range("AG" & i)
                    .Range("N" & i).Value = .Range("AH" & i)
                    .Range("O" & i).Value = .Range("AI" & i) - Application.WorksheetFunction.VLookup(.Range("AF" & i), .Range("AQ23:AV29"), 4, False)
                    .Range("P" & i).Value = .Range("AJ" & i)
                    .Range("Q" & i).Value = .Range("O" & i) * .Range("P" & i)
                    .Range("R" & i).Value = .Range("AL" & i)
                    .Range("S" & i).Value = (.Range("R" & i) - .Range("P" & i)) * .Range("O" & i)
                Else
                End If
            Else
            End If
        End If
    Next i
    End With
End Sub
 
Upvote 0
Xin lỗi, file thì mình chưa public được, vài bữa xong gửi lên sau
 
Upvote 0
Tôi chưa muốn nói là code của bạn hay hoặc không hay, nhưng nếu có file thì code của bạn phải sửa và rút gọn nhiều chỗ.
Mình không dám nói và chưa bao giờ nói code mình hay, vấn đề là nó chạy được như mình mong muốn.
Nếu bạn chỉ giúp rút gọn chỗ nào thì mình cảm ơn.
 
Upvote 0
Mình không dám nói và chưa bao giờ nói code mình hay, vấn đề là nó chạy được như mình mong muốn.
Nếu bạn chỉ giúp rút gọn chỗ nào thì mình cảm ơn.
Thì bạn đưa file lên mới làm được, chứ tôi phải tưởng tượng để chỉnh sửa code hay sao?
 
Upvote 0
Chào mọi người,
Mình đang viết cái code trong VBA, chạy cũng khá mượt nhưng mà bị báo lỗi.
Mong mọi người chỉ giúp, cần thì mình sẽ upload file lên
...

Chạy "mượt" ở chỗ nào? Lỗi là lỗi, "mượt" với "nhưng mà" cái quái gì nữa?


Mình sửa lại một chút code cho bạn nào tham khảo:
...

Tham khảo gì? Ít nhất bạn phải nói cho người ta biết code ấy nó làm cái gì chứ?

Tự dưng đưa một đống thù lù ra giữa chợ, nói "cho thiên hạ tham khảo". Giống như đem chai rượu ra khoe thiên hạ rồi tự mình ngữa cổ uống.


Xin lỗi, file thì mình chưa public được, vài bữa xong gửi lên sau

Rõ ràng trong bài #1, cần giải đáp nên có nói "cần thì mình sẽ upload file". Qua tới bài #4 thì giải đáp có rồi, file tự nhiên không "lên" được nữa.


Mình không dám nói và chưa bao giờ nói code mình hay, vấn đề là nó chạy được như mình mong muốn.
Nếu bạn chỉ giúp rút gọn chỗ nào thì mình cảm ơn.

Bây giờ thì file "lên" được chưa?
 
Upvote 0

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

Back
Top Bottom