Không đâu anh Duy thương. mỗi biến được lưu một giá trị, mà giá trị có thể lớn hoặc nhỏ nên theo đó mình phải khai báo cho phù hợp, Còn trong 1 chương trình cho dù chương trình đó lớn tới cỡ nào đi chăng nữa nhưng nếu các biến của nó không có lưu giá trị lớn thì nó cũng khai báo kiểu nho nhỏ thôi
ví dụ
có 1 vài trường hợp biến chỉ được nhận 1 trong 2 giá trị(tại sao người ta không sử dụng kiểu, byte, long hoặc integer để lưu) mà chọn kiểu Boolean, vì kiểu boolean phù hợp với yêu cầu và tiết kiệm được nhiều bộ nhớ
nếu mình nhận định được các giá trị mà biến có thể lưu thì mình nên đặt bộ nhớ cho thích hợp
(do hiện nay tộc độ cũng như bộ nhớ máy tính nhiều nên anh thấy không vấn đề gì, nếu anh chạy file lớn mà không để ý đến biến là nguy hiểm lắm đó)
Vụ này đã bàn rất nhiều lần rồi (bạn tìm sẽ thấy).... Riêng tôi thì cóc thèm xài mấy thằng Byte hay Interger cho mệt, cứ Long mà phang..
-----------------
chắc phải để các sư phụ giải thích. tôi thì xem các code API họ ít khi xử dụng bye mà toàn sử dung LOng. chẳng lẽ code được win hỗ trợ lại là trương trình nhỏ
Em không biết gì về API cả, đây chỉ là những kiến thức cơ bản về Macro mà các sư phụ tigertiger dạy em trước đó. Em còn nhớ rõ trong một bài giảng về khai báo biến sư phụ có lấy ví dụ thế này: nếu ta muốn dùng 1 biến để chứa các tháng thì chỉ cần khai báo kiểu byte là đủ vì các tháng chỉ từ 1 đến 12 mà giới hạn của byte là từ 0 đến 255 vì thế khai báo là Long thì hơi phí. Trong các chương trình nhỏ thì nó ko ảnh hưởng gì nhưng trong các chương trình lớn nếu chúng ta biết rõ giới hạn của biến thì nên khai báo chuẩn để tiết kiệm bộ nhớ cho máy tính giúp chương trình chạy nhanh hơn.
Vài dòng chia sẻ!!!
Em không biết gì về API cả, đây chỉ là những kiến thức cơ bản về Macro mà sư phụ tigertiger dạy em trước đó. Em còn nhớ rõ trong một bài giảng về khai báo biến sư phụ có lấy ví dụ thế này: nếu ta muốn dùng 1 biến để chứa các tháng thì chỉ cần khai báo kiểu byte là đủ vì các tháng chỉ từ 1 đến 12 mà giới hạn của byte là từ 0 đến 255 vì thế khai báo là Long thì hơi phí. Trong các chương trình nhỏ thì nó ko ảnh hưởng gì nhưng trong các chương trình lớn nếu chúng ta biết rõ giới hạn của biến thì nên khai báo chuẩn để tiết kiệm bộ nhớ cho máy tính giúp chương trình chạy nhanh hơn.
Vài dòng chia sẻ!!!
Cách đặt name thì bài trên đã nói rồi, tôi nói thêm 1 chút: hàm này không phải là hàm Excel thông thường, nó là hàm macro 4, có từ thời xa xưa nhưng do ứng dụng của nó vẩn còn rất hửu ích nên đến nay vẩn còn người dùng... Với bộ hàm này, có cái đặt name được, có cái thì không (tùy)
Ý mình cũng như vậy mà!
Nhưng cho mình hỏi tí:
Mình mở 1 file mới, rồi mở thêm 1 file mới nữa là 2 file đúng không?
Nhưng mình nhập hàm này vào trong 1 sheet của 1 file thì kết quả là 3 là sao? phải 3 sheet không?
Mã:
=INFO("numfile")
Rồi sao đó mình thêm thử một sheet trong file có công thức trên, kết quả của hàm này không cập nhật được mà phải gõ lại, kết quả thay đổi là 4.
Vậy là sao?
Bạn có thể giải thích thêm về hàm này không?
Thân chào và chúc sức khỏe?
có 1 vài trường hợp biến chỉ được nhận 1 trong 2 giá trị(tại sao người ta không sử dụng kiểu, byte, long hoặc integer để lưu) mà chọn kiểu Boolean, vì kiểu boolean phù hợp với yêu cầu và tiết kiệm được nhiều bộ nhớ
Có chắc không vậy, khi nói đên boolean ai chả biết về mặt lưu thông tin thì nó lưu được hai giá trị ( chỉ cần một bít, về mặt logic). Tuy nhiên xét trên khía cạnh vật lý thì nó lại ngốn 2 byte nhé. Đố mọi người biết tại sao nó lại không dùng một bít ( vật lý).
Có chắc không vậy, khi nói đên boolean ai chả biết về mặt lưu thông tin thì nó lưu được hai giá trị ( chỉ cần một bít, về mặt logic). Tuy nhiên xét trên khía cạnh vật lý thì nó lại ngốn 2 byte nhé. Đố mọi người biết tại sao nó lại không dùng một bít ( vật lý).
Biến kiểu Boolean nó chỉ chiếm 1 byte trong bộ nhớ thôi bạn, còn tại sao các kiểu dữ liệu được lưu bằng đơn vị i là byte cái này bạn học các môn lập trình cơ sở sẽ biết
Biến kiểu Boolean nó chỉ chiếm 1 byte trong bộ nhớ thôi bạn, còn tại sao các kiểu dữ liệu được lưu bằng đơn vị i là byte cái này bạn học các môn lập trình cơ sở sẽ biết
Lập trình cơ sở nói về một ngôn ngữ lý tưởng (ideal language). VBA không phải là ngôn ngữ lập trình lý tưởng.
Trong VBA, Boolean là một Integer. Và cách sử lý trị của nó cũng khá rối rắm.
Nêu 0 thì là false, nếu bất cứ bit nào trong 16 bits của nó khác 0 thì là True. Mặc định True là tất cả các bits đều khác 0.
Nói chung thì cái chuyện nhanh chậm và tốn bộ nhớ chỉ là chuyện 20 năm về trước. Thời buổi bây giờ CPU có khả năng lấy nhiều bytes 1 lúc, và máy tính có bộ nhớ lớn. Chuyện kích cỡ của trị nguyên nó gần như không quan trọng, dùng byte chỉ thêm phần rắc rối với khả năng bị tràn số. Trừ phi bạn tạo bảng dò (bit map) hoặc dùng mảng rất lớn (cỡ triệu phần tử) hoặc dùng hàm đệ quy.
Byte cũng có lợi điểm là nó tránh cho bạn trường hợp lựa chọn big/small endian. Tuy nhiên, đây là loại lập trình cao cấp và lập trình nhúng (embedding)
Lập trình cơ sở nói về một ngôn ngữ lý tưởng (ideal language). VBA không phải là ngôn ngữ lập trình lý tưởng.
Trong VBA, Boolean là một Integer. Và cách sử lý trị của nó cũng khá rối rắm.
Nêu 0 thì là false, nếu bất cứ bit nào trong 16 bits của nó khác 0 thì là True. Mặc định True là tất cả các bits đều khác 0.
Nói chung thì cái chuyện nhanh chậm và tốn bộ nhớ chỉ là chuyện 20 năm về trước. Thời buổi bây giờ CPU có khả năng lấy nhiều bytes 1 lúc, và máy tính có bộ nhớ lớn. Chuyện kích cỡ của trị nguyên nó gần như không quan trọng, dùng byte chỉ thêm phần rắc rối với khả năng bị tràn số. Trừ phi bạn tạo bảng dò (bit map) hoặc dùng mảng rất lớn (cỡ triệu phần tử) hoặc dùng hàm đệ quy.
Byte cũng có lợi điểm là nó tránh cho bạn trường hợp lựa chọn big/small endian. Tuy nhiên, đây là loại lập trình cao cấp và lập trình nhúng (embedding)
Lập trình cơ sở nói về một ngôn ngữ lý tưởng (ideal language). VBA không phải là ngôn ngữ lập trình lý tưởng.
Trong VBA, Boolean là một Integer. Và cách sử lý trị của nó cũng khá rối rắm.
Nêu 0 thì là false, nếu bất cứ bit nào trong 16 bits của nó khác 0 thì là True. Mặc định True là tất cả các bits đều khác 0.
Nói chung thì cái chuyện nhanh chậm và tốn bộ nhớ chỉ là chuyện 20 năm về trước. Thời buổi bây giờ CPU có khả năng lấy nhiều bytes 1 lúc, và máy tính có bộ nhớ lớn. Chuyện kích cỡ của trị nguyên nó gần như không quan trọng, dùng byte chỉ thêm phần rắc rối với khả năng bị tràn số. Trừ phi bạn tạo bảng dò (bit map) hoặc dùng mảng rất lớn (cỡ triệu phần tử) hoặc dùng hàm đệ quy.
Byte cũng có lợi điểm là nó tránh cho bạn trường hợp lựa chọn big/small endian. Tuy nhiên, đây là loại lập trình cao cấp và lập trình nhúng (embedding)