Xin chào các Anh, chị ở diến đàn giaiphapexcel.com
Chả là em mới tập tành viết code VBA trên excel. Trong quá trình học viết code thì cũng có tham khảo 2 hàm tự tạo này của các anh/chị trên diễn đàn mình, đó là:
1, Hàm xác định 1 sheet có tồn tại:
Function SheetExist(wksName As Variant) As Variant
On Error Resume Next
SheetExist = Not ActiveWorkbook.Sheets(wksName) Is Nothing
End Function
2, Hàm lấy số ngẫu nhiên không trùng:
Function URNum(Bottom As Long, Top As Long, Amount As Long)
'Application.Volatile '<--- Neu muon gia tri thay doi khi bam F9
On Error Resume Next
If Amount > Top - Bottom + 1 Then Amount = Top - Bottom + 1
With CreateObject("Scripting.Dictionary")
Do
.Add Int(Rnd() * (Top - Bottom + 1)) + Bottom, ""
Loop Until .Count = Amount
URNum = WorksheetFunction.Transpose(.Keys)
End With
End Function
Trước đây, khi mới áp dụng 2 hàm này thì code chạy ngon lành, nhưng không hiểu sao dạo gần đây khi e sử dụng 2 hàm này trong code của mình thì hàm số 1 bị báo lỗi Subcript out of Range khi có sheet không tồn tại và hàm số 2 báo lỗi "This key is already associated with an element of this colection".
Điều đáng nói là cùng code e mang sang các máy khác thì chạy ngon lành, không báo lỗi gì cả. Em muốn hỏi các anh/chị là tại sao lại như thế và có phải là do máy em thiết lập chế độ gì mà bị như thế ko?
Chả là em mới tập tành viết code VBA trên excel. Trong quá trình học viết code thì cũng có tham khảo 2 hàm tự tạo này của các anh/chị trên diễn đàn mình, đó là:
1, Hàm xác định 1 sheet có tồn tại:
Function SheetExist(wksName As Variant) As Variant
On Error Resume Next
SheetExist = Not ActiveWorkbook.Sheets(wksName) Is Nothing
End Function
2, Hàm lấy số ngẫu nhiên không trùng:
Function URNum(Bottom As Long, Top As Long, Amount As Long)
'Application.Volatile '<--- Neu muon gia tri thay doi khi bam F9
On Error Resume Next
If Amount > Top - Bottom + 1 Then Amount = Top - Bottom + 1
With CreateObject("Scripting.Dictionary")
Do
.Add Int(Rnd() * (Top - Bottom + 1)) + Bottom, ""
Loop Until .Count = Amount
URNum = WorksheetFunction.Transpose(.Keys)
End With
End Function
Trước đây, khi mới áp dụng 2 hàm này thì code chạy ngon lành, nhưng không hiểu sao dạo gần đây khi e sử dụng 2 hàm này trong code của mình thì hàm số 1 bị báo lỗi Subcript out of Range khi có sheet không tồn tại và hàm số 2 báo lỗi "This key is already associated with an element of this colection".
Điều đáng nói là cùng code e mang sang các máy khác thì chạy ngon lành, không báo lỗi gì cả. Em muốn hỏi các anh/chị là tại sao lại như thế và có phải là do máy em thiết lập chế độ gì mà bị như thế ko?