Hỏi về CreateObject("System.Collections.ArrayList")

Liên hệ QC

Quang_Hải

Thành viên gạo cội
Tham gia
21/2/09
Bài viết
6,069
Được thích
7,992
Nghề nghiệp
Làm đủ thứ
Có phải muốn xài loại Object này thì máy tính phải có cài thêm gì nữa hay không?
Sao mình viết code này chạy tốt trên máy tính của mình nhưng gởi file cho người khác thì lại báo lỗi. Các anh chị nào biết vui lòng giải thích giúp.
PHP:
Function QuickSort(Sarr(), ByVal Order As Boolean)
  Dim Arr(), i As Long, Temp
  With CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(Sarr)
        If Sarr(i, 1) <> "" Then .Add Sarr(i, 1)
    Next
    .Sort
    If Order = False Then .Reverse
    Temp = .ToArray
  End With
  ReDim Arr(0 To UBound(Temp), 1 To 1)
  For i = 0 To UBound(Temp)
    Arr(i, 1) = Temp(i)
  Next
  QuickSort = Arr
End Function
 
Lần chỉnh sửa cuối:
Có phải muốn xài loại Object này thì máy tính phải có cài thêm gì nữa hay không?
Sao mình viết code này chạy tốt trên máy tính của mình nhưng gởi file cho người khác thì lại báo lỗi. Các anh chị nào biết vui lòng giải thích giúp.
PHP:
Function QuickSort(Sarr(), ByVal Order As Boolean)
  Dim Arr(), i As Long, Temp
  With CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(Sarr)
        If Sarr(i, 1) <> "" Then .Add Sarr(i, 1)
    Next
    .Sort
    If Order = False Then .Reverse
    Temp = .ToArray
  End With
  ReDim Arr(0 To UBound(Temp), 1 To 1)
  For i = 0 To UBound(Temp)
    Arr(i, 1) = Temp(i)
  Next
  QuickSort = Arr
End Function

Em chạy thử code này trên máy em cũng chẳng thấy lỗi gì cả. Rất khó khi không thấy lỗi đó xuất hiện. Em nghĩ anh bảo người dùng chụp cái ảnh lỗi đó may ra còn mò được chứ thế này chắc chịu.
 
Upvote 0
Có phải muốn xài loại Object này thì máy tính phải có cài thêm gì nữa hay không?
Sao mình viết code này chạy tốt trên máy tính của mình nhưng gởi file cho người khác thì lại báo lỗi. Các anh chị nào biết vui lòng giải thích giúp.
PHP:
Function QuickSort(Sarr(), ByVal Order As Boolean)
  Dim Arr(), i As Long, Temp
  With CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(Sarr)
        If Sarr(i, 1) <> "" Then .Add Sarr(i, 1)
    Next
    .Sort
    If Order = False Then .Reverse
    Temp = .ToArray
  End With
  ReDim Arr(0 To UBound(Temp), 1 To 1)
  For i = 0 To UBound(Temp)
    Arr(i, 1) = Temp(i)
  Next
  QuickSort = Arr
End Function

Anh Hải thử vào Start/Run gõ Regedit
Sau đó làm như ảnh bên dưới xem được không ạ?

Untitled.jpg

Em không hiểu cái hàm trên của Anh sử dụng thế nào nhưng ngày trước máy tính của em không có một số file excel chứa mã macro và em đã thiết lập chế độ security cho chương trình đọc macro rồi nhưng vẫn không được. Và em đã làm thêm cách trên thì macro hoạt động bình thường.
 
Upvote 0
Có phải muốn xài loại Object này thì máy tính phải có cài thêm gì nữa hay không?
Sao mình viết code này chạy tốt trên máy tính của mình nhưng gởi file cho người khác thì lại báo lỗi. Các anh chị nào biết vui lòng giải thích giúp.
PHP:
Function QuickSort(Sarr(), ByVal Order As Boolean)
  Dim Arr(), i As Long, Temp
  With CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(Sarr)
        If Sarr(i, 1) <> "" Then .Add Sarr(i, 1)
    Next
    .Sort
    If Order = False Then .Reverse
    Temp = .ToArray
  End With
  ReDim Arr(0 To UBound(Temp), 1 To 1)
  For i = 0 To UBound(Temp)
    Arr(i, 1) = Temp(i)
  Next
  QuickSort = Arr
End Function

Thành viên kỳ cựu như bạn mà mô tả thế sao? "Báo lỗi" chả nói lên cái gì cả. Lỗi gì, thông báo ra sao, sẩy ra khi nào ...? Cụ thể đi.

Tôi chưa dùng "cái này" bao giờ nhưng rất có thể bạn "có" do bạn đã cài .NET Framework nào đó còn "họ" chưa cài?
 
Upvote 0
Thành viên kỳ cựu như bạn mà mô tả thế sao? "Báo lỗi" chả nói lên cái gì cả. Lỗi gì, thông báo ra sao, sẩy ra khi nào ...? Cụ thể đi.

Tôi chưa dùng "cái này" bao giờ nhưng rất có thể bạn "có" do bạn đã cài .NET Framework nào đó còn "họ" chưa cài?

Có thể là máy tính em có cài Frame 2.0 vì khi cài Office em phải cài cái này vào để nạp key cho Office. Em cũng không thấy cái lỗi ra sao nữa, chỉ nghe nói báo lỗi tại dòng CreateObject("System.Collections.ArrayList")
 
Upvote 0
Có thể là máy tính em có cài Frame 2.0 vì khi cài Office em phải cài cái này vào để nạp key cho Office. Em cũng không thấy cái lỗi ra sao nữa, chỉ nghe nói báo lỗi tại dòng CreateObject("System.Collections.ArrayList")

Gõ cửa bác google thì ra cái này

http://msdn.microsoft.com/pl-pl/library/system.collections.arraylist(v=vs.110).aspx

Nhìn System., System.Collections (namespace) là tôi nghi nghi cái anh NET Framework
--------------
Tất cả các class đã đăng ký thì có thông tin trong Registry

Bảo người ta: Start --> Run --> gõ regedit.exe --> OK --> menu Edit --> Find --> tìm System.Collections.ArrayList

Nếu không tìm thấy thì chắc chắn CreateObject sẽ có lỗi.
 
Lần chỉnh sửa cuối:
Upvote 0
System.Collections.ArrayList chính xác là một class của .NET framework. Muốn dùng nó thì bắt buộc phải có .NET

Khi muốn viết code loại có thể sử dụng ở nhiều máy (portable), ngươi ta luôn luôn để ý cẩn thận với các class nhập từ các công cụ khác.

Tuy .NET nói chung là vô hại nhưng chưa chắc có những hệ thống người ta chấp nhận cài đặt. Người viết code có hi phải hy sinh tiện nghi và tốc độ để code có thể đại chúng hơn. Người viết code chuyên nghippej có cách cô lập các loại code này riêng ra để áp dụng cho nhiều trường hợp khác nhau.
 
Upvote 0
System.Collections.ArrayList chính xác là một class của .NET framework. Muốn dùng nó thì bắt buộc phải có .NET

Khi muốn viết code loại có thể sử dụng ở nhiều máy (portable), ngươi ta luôn luôn để ý cẩn thận với các class nhập từ các công cụ khác.

Tuy .NET nói chung là vô hại nhưng chưa chắc có những hệ thống người ta chấp nhận cài đặt. Người viết code có hi phải hy sinh tiện nghi và tốc độ để code có thể đại chúng hơn. Người viết code chuyên nghippej có cách cô lập các loại code này riêng ra để áp dụng cho nhiều trường hợp khác nhau.
vậy office 365 (64) thì cài .NET framework nào ạ?
 
Upvote 0
Không phải cài gì cả. Windows luôn luôn và luôn luôn có sẵn .NET framework.
Nếu Windows hàng lậu, bẻ khóa này nọ thì thường dính lỗi .NET framework không bật sẵn nên chỉ cần bật lên là xong thôi.

1688030353591.png
 
Upvote 0
Web KT

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

Back
Top Bottom