VBA Nhận được thông báo: Run-time error "70" Permission denied (1 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