Xin lỗi vì đã đặt một câu hỏi cơ bản như nhưng điều này là lái xe cho tôi điên ...VBA mảng chiều dài (không UBound hoặc onerror!)
chức năng gì trong VBA trả về số phần tử trong một mảng ... tức là khi mảng rỗng, nó sẽ trả về 0? Tôi không thể làm điều này với UBound vì nó ném một lỗi khi được gọi trên một mảng trống và tôi không thể tin được cách để làm điều này bằng cách sử dụng OnError để xác định đầu tiên của nó trống hay không ... như được đề xuất trên diễn đàn! array.Length phàn nàn về một vòng loại xấu hoặc một cái gì đó.
tôi thực sự cần phải làm điều này:
dim termAry() as String
populate termAry
...
private sub populate(terms() as String)
redim preserve terms(terms.Length) ' Redim takes ubound for array size
terms(ubound(terms)) = "something really annoying"
end sub
Tái bút bất kỳ liên kết tốt để một tập ngắn gọn của ngôn ngữ và chức năng tham khảo VBA sẽ là hữu ích nhất ... MSDN dường như thực sự khó hiểu !!!
bạn đang cố gắng làm gì? bạn cần một nguồn cho mảng của bạn - nó đến từ đâu từ –
Xem http://stackoverflow.com/questions/4097021/vba-handle-empty-array-error hoặc http://stackoverflow.com/questions/206324/how -to-check-cho-empty-array-in-vba-macro –
tất cả những gì bạn cần để xử lý nó để nói 'if ubound (arr)> 1 thì ...', để khởi tạo sử dụng 'redim arr (MAX)' –