Nguyên nhân nào gây lỗi code mảng tại một máy tính, còn máy tính khác thì không? (1 người xem)

Liên hệ QC

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

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Em có một file DS share file và 3 người trong phòng dung chung
Không hiểu sao
- Máy 1 & máy 2 code chạy ok
- May 3 chạy code bị lỗi (giá trị ra và xếp lung tung giữa các trường hoặc ra N/A

Lần trước bị một lần e đã bỏ dấu tich ở mục TRUST ACESS to VBA project. Nhưng lần này em kiểm tra cả 3 máy đều không tích nhưng duy nhất có 1 máy tính bị hiện tượng này

PHP:
Sub FCRIMP()
Sheet5.Range("A5:T65000").ClearContents
On Error GoTo thoat
With CreateObject("Scripting.Dictionary")
        Dim Arr(), SArr, lRow As Long, lR As Long, item, KQ
    
  
        ' code sheet1
                    SArr = Sheet1.Range(Sheet1.[A5], Sheet1.[A65536].End(xlUp)).Resize(, 24).Value
                
                     For lRow = 1 To UBound(SArr, 1)
                        If SArr(lRow, 21) = [B1] And IIf(Sheet5.[D1] = "KKK & KLPL", SArr(lRow, 7) <> "KLV", Left(SArr(lRow, 7), 3) = Left([D1], 3)) Then  ' column 27 la cot ky FCR
                            item = SArr(lRow, 8) & " " & SArr(lRow, 13)
                          
                                If Not .Exists(item) Then
                                     lR = lR + 1
                                    .Add item, lR
                                    
                                    KQ = Split(item, " ", 2)
                                    ReDim Preserve Arr(1 To UBound(SArr, 1), 1 To 6)
                                    Arr(lR, 1) = KQ(0)
                                    Arr(lR, 3) = KQ(1)
                                    Arr(lR, 4) = -SArr(lRow, 12)
                                    Arr(lR, 5) = SArr(lRow, 19)
                                    Arr(lR, 6) = "HPG_" & SArr(lRow, 22)
                                Else
                                    Arr(.item(item), 4) = (Arr(.item(item), 4) - SArr(lRow, 12))
                                End If
                        End If
                      Next lRow
         
                      If lR Then Sheet5.Range("A5").Resize(lR, 6).Value = Arr
End With ' cua object
                                
thoat:
End Sub
 
Em có một file DS share file và 3 người trong phòng dung chung
Không hiểu sao
- Máy 1 & máy 2 code chạy ok
- May 3 chạy code bị lỗi (giá trị ra và xếp lung tung giữa các trường hoặc ra N/A

Lần trước bị một lần e đã bỏ dấu tich ở mục TRUST ACESS to VBA project. Nhưng lần này em kiểm tra cả 3 máy đều không tích nhưng duy nhất có 1 máy tính bị hiện tượng này
Bỏ dòng On Error... rồi thí nghiệm lại xem
Ngoài ra, trên máy bị lỗi, hãy vào menu Tools\References xem thử có em nào bị MISSING không
 
Upvote 0
Em xin gửi file
- Sheet IMP: Dữ liệu hàng nhập
- Sheet ẼXP : dữ liệu hàng xuất

Em chèn 2 sheet nữa tướng ứng
- Máy 1: code chạy ok
- Máy 2 : Code chạy dữ liệu ra bị lỗi

Mong Anh NDU chỉ giúp em
Em cảm ơn nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Em xin gửi file
- Sheet IMP: Dữ liệu hàng nhập
- Sheet ẼXP : dữ liệu hàng xuất

Em chèn 2 sheet nữa tướng ứng
- Máy 1: code chạy ok
- Máy 2 : Code chạy dữ liệu ra bị lỗi

Mong Anh NDU chỉ giúp em
Em cảm ơn nhiều
- Đầu tiên hãy Show Row and Column Headers cho dễ thấy ---> Bạn sẽ thấy sheet "May 2-Bi Loi" đang filter ---> Hãy Show All nó trước (nếu không thì End(xlUp) sẽ hoạt động sai)
- Cả 2 sheet đều dùng sự kiện Worksheet_Change... trong code có liên kết với Sub FCRIMPSub FCREXP... 2 Sub này hoạt động và trả kết quả về 1 Range thuộc Sheet6 (If lR Then Sheet6.Range("A5").Resize(lR, 6).Value = Arr)---> Vậy chỉ có Sheet6 mới nhận được dữ liệu, đúng không?
Kết luận: Code của bạn chỉ hoạt động trên Sheet có codename = Sheet6, mọi sheet khác đều không hoạt động
Giải pháp: Sửa lại code cho tổng quát để sheet nào cũng dùng được
 
Upvote 0
Anh NDU
FIle gốc chỉ có sheet5. Em vừa copy thêm sheet 6 để chạy thử tại máy1 (máy em) (và sửa cả trong sub thành sheet6)

Cũng là code này (file share) và được bật lên từ máy 2 thì dữ liệu sẽ bị lung tung như vùng bôi vàng (filter)

Em nhờ anh giúp:

Nếu thuật toán trong code đã đúng? vậy nguyên nhân nào làm cho kết quả mảng bị sai?

Trong trường hợp không tìm ra, mình có thể repair office được không anh?
 
Lần chỉnh sửa cuối:
Upvote 0
Anh NDU
FIle gốc chỉ có sheet5. Em vừa copy thêm sheet 6 để chạy thử tại máy1 (máy em) (và sửa cả trong sub thành sheet6)

Cũng là code này (file share) và được bật lên từ máy 2 thì dữ liệu sẽ bị lung tung như vùng bôi vàng (filter)

Em nhờ anh giúp:

Nếu thuật toán trong code đã đúng? vậy nguyên nhân nào làm cho kết quả mảng bị sai?

Trong trường hợp không tìm ra, mình có thể repair office được không anh?
Tôi cũng không biết nữa... vì khi tôi sửa lại mọi thứ (giống như tôi nói ở trên) thì code chạy bình thường ở cả 2 sheet
 
Upvote 0
Em share file trong mạng lan, và thử mở file từ rất nhiều máy tính khác. File chạy ngon
Nhưng cứ file của bà chị cùng phòng thì dữ liệu chạy lung tung

Hi hi...chắc chắn là set thiếu cái gì đó ở máy mà mình không biết

Dù sao em cũng rất cám ơn Anh NDU nhiều
 
Upvote 0
Em không làm gì cái file đó, đến sáng nay, chạy ra máy đó chạy thử. CODE lại ok rồi.

Em đoán máy tính này chắc không để update rồi, nến có thể bộ office thiếu cái j đó gây lỗi chạy code.
p.s (em dùng office bản quyền)
 
Upvote 0
Web KT

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

Back
Top Bottom