VBA Nhận được thông báo: Run-time error "70" Permission denied (2 người xem)

  • Thread starter Thread starter Tungnk
  • Ngày gửi Ngày gửi
Liên hệ QC

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

  • Tungnk

    Thành viên mới
    Tham gia
    16/6/22
    Bài viết
    0
    Được thích
    0
    Xin chào các thành viên của GPE, mình có tạo một userform và khi mình viết câu lệnh để gọi (.Show) thì có thông báo lỗi như trong ảnh ở bên dưới. Hiện tại mình dùng window10 Pro và mình thử mở userform này trên các máy tính khác chạy Window10 và 11 Pro (đều chạy ở tài khoản Admin) thì cũng nhận được thông báo như trong ảnh ở bên dưới. Mình đã tìm hiểu giải thích và khuyến nghị ở địa chỉ này https://docs.microsoft.com/en-us/of...ser-interface-help/permission-denied-error-70 nhưng mà vẫn chưa tìm ra nguyên nhân và giải pháp cho vấn đề này. Mình có upload cái file mà mình tạo lên đây để mong nhận được sự hỗ trợ của toàn thể các thành viên.
    Mình xin chân thành cảm ơn!

    1655390868770.png
     

    File đính kèm

    Hoặc là xóa Property RowSource của listbox, hoặc là xóa câu lệnh gán ListBox1.List
     
    Mình đã xóa thông tin ở RowSource trong bảng Property đi và chạy lại userform và không còn xuất hiện thông báo như vậy nữa. Cảm ơn pmt0412 rất nhiều nhé!
     
    Mình đã xóa thông tin ở RowSource trong bảng Property đi và chạy lại userform và không còn xuất hiện thông báo như vậy nữa. Cảm ơn pmt0412 rất nhiều nhé!
    Nhưng tại sao set ListBox1.List tới 10000 dòng? Sao không dùng Range("Data").Value?
     
    Nhưng tại sao set ListBox1.List tới 10000 dòng? Sao không dùng Range("Data").Value?
    Em chào Anh!
    Thưa Anh
    Em dùng mảng thêm dữ liệu vào listbox, mà trong Rowsource của em không điền thông tin gì
    Em nhận được lỗi run-time-error-70-permission-denied tại đoạn code UF2.LB_NK.List = arrData ạ!
    Mong anh chỉ giúp em với ạ!

    Sub Create_lisbox()
    gan_bien
    Dim arrData() As Variant
    sh_nk.AutoFilterMode = False
    lr_nk = sh_nk.Range("D" & Rows.Count).End(xlUp).Row

    If lr_nk > 5 Then
    arrData = sh_nk.Range("A5:W" & lr_nk).value
    ReDim arrData(1 To lr_nk - 4, 1 To 23)

    For i = 5 To lr_nk
    For j = 1 To 23
    arrData(i - 4, j) = sh_nk.Cells(i, j)
    Next j
    Next i
    ElseIf lr_nk = 5 Then
    Exit Sub
    End If

    UF2.LB_NK.Clear
    UF2.LB_NK.ColumnCount = 23
    UF2.LB_NK.ColumnWidths = "25;50;58;35;250;50;50;50;20;30;85;50;50;130;50;50;50;50;50;50;50;50;200"

    UF2.LB_NK.List = arrData

    Erase arrData

    End Sub
     
    Câu lệnh Redim không cần thiết và vị trí đặt lại càng sai.
    arrData đã nhận giá trị từ 1 range trên sheet thì nó đã tự nhận biết số dòng và số cột, không cần Redim
    arrData đã có giá trị mảng rồi mà Redim thì nó trở thành mảng trắng toàn bộ, dữ liệu các phần tử bị mất hết
    Sau đó lại khốn khổ add từng giá trị của arrData bằng 2 vòng lặp.

    Đó là nhận xét sơ bộ về code. Còn lỗi xảy ra phải tùy tình huống cụ thể lúc xảy ra lỗi:
    - lr_nk bằng bao nhiêu?
    - Cái Listbox đang khai báo các property như thế nào?
    - Nhiều thứ khác.

    Tóm lại nên có file
     
    Web KT

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

    Back
    Top Bottom