Các Câu Hỏi Về Mảng Trong VBA (Array) | Giải Pháp Excel

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
  • Lập Trình với Excel
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Các câu hỏi về mảng trong VBA (Array)
  • Thread starter viehoai
  • Ngày gửi 24/3/11
Liên hệ QC viehoai

viehoai

Thành viên gắn bó
Tham gia 22/5/09 Bài viết 2,599 Được thích 2,908 Xin các anh chị giúp đỡ Code Gán các giá trị của một Range là các phần tử của Mãng Ví dụ: Tôi có các giá trị của Range("A1:A10"). Tôi muốn viết code để gán giá trị của các cells từ A1:A10 là các phần tử của Mãng Arr chẳn hạn. Xin cảm ơn các anh chị
  • 1
  • 2
  • 3
  • Go to page

    Tiếp tục
  • 77
Tiếp 1 of 77

Go to page

Tiếp tục Tiếp Last Sắp xếp theo thời gian sắp xếp theo bầu chọn huuthang_bd

huuthang_bd

Chuyên gia GPE
Tham gia 10/9/08 Bài viết 8,905 Được thích 11,248 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Thợ đụng
viehoai đã viết: Xin các anh chị giúp đỡ Code Gán các giá trị của một Range là các phần tử của Mãng Ví dụ: Tôi có các giá trị của Range("A1:A10"). Tôi muốn viết code để gán giá trị của các cells từ A1:A10 là các phần tử của Mãng Arr chẳn hạn. Xin cảm ơn các anh chị Nhấp chuột vào đây để mở rộng...
Như thế này nè bạn PHP:Sao chép. Dim Arr As Variant Arr = [A1:A10].Value Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
viehoai đã viết: Xin các anh chị giúp đỡ Code Gán các giá trị của một Range là các phần tử của Mãng Ví dụ: Tôi có các giá trị của Range("A1:A10"). Tôi muốn viết code để gán giá trị của các cells từ A1:A10 là các phần tử của Mãng Arr chẳn hạn. Xin cảm ơn các anh chị Nhấp chuột vào đây để mở rộng...
Có lẽ nên hỏi lại cho rõ là "gán giá trị của các cells từ A1:A10 các phần tử của Mãng Arr" có nghĩa là: - Gán các giá trị của Cells từ A1 đến A10 vào 1 mảng Arr - Gán các giá trị của Cells từ A1 đến A10 từ/ bằng 1 mảng Arr Eo ôi, tiếng Việt! Upvote 0 viehoai

viehoai

Thành viên gắn bó
Tham gia 22/5/09 Bài viết 2,599 Được thích 2,908
ptm0412 đã viết: Có lẽ nên hỏi lại cho rõ là "gán giá trị của các cells từ A1:A10 các phần tử của Mãng Arr" có nghĩa là: - Gán các giá trị của Cells từ A1 đến A10 vào 1 mảng Arr - Gán các giá trị của Cells từ A1 đến A10 từ 1 mảng Arr Eo ôi, tiếng Việt! Nhấp chuột vào đây để mở rộng...
Dạ ý em là PHP:Sao chép. Gán các giá trị của Cells từ A1 đến A10 vào 1 mảng Arr Em làm theo cách của anh huuthang_bd đã được nhưng sao em thử thí nghiệm xuất một phẩn tử theo dạng: 1. Arr(i) thì báo lỗi 2. Arr(i,1) cho kết quả giá trị của phần tử thứ i 3. Arr(1,i) thì báo lỗi Em đang tự học về Mãng, xin các anh chị giải thích thêm. Xin cảm ơn Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Arr(i, j) là phần tử của mảng tại dòng i, cột j của mảng Do khai báo Dim Arr As variant và không khai báo chiều, nên mặc định Arr là mảng 2 chiều A1:A10 là mảng dọc, không có nghĩa là mảng 1 chiều, đó là mảng 2 chiều: 1 chiều 10 dòng và 1 chiều 1 cột. Muốn khai báo mảng 1 chiều thì khai báo Dim Arr As variant Redim Arr(10) Nhưng lúc này mặc định mảng 1 chiều lại là mảng ngang. Và muốn cho là mảng 1 chiều thực sự, thì không được gán giá trị 1 lần cho nó bằng 1 range trong bảng tính. Túm lại, mảng dọc bắt buộc là mảng 2 chiều. Mảng ngang thì tuỳ theo cách gán giá trị, gán bằng range trên sheet thì 2 chiều. Thí dụ 2 sub sau: PHP:Sao chép. Sub Test1() Dim Arr As Variant ReDim Arr(1 To 10) Arr = Range("A1:J1").Value MsgBox Arr(4) End Sub PHP:Sao chép. Sub Test2() Dim Arr As Variant ReDim Arr(1 To 10) For i = 1 To 10 Arr(i) = Cells(1, i) Next MsgBox Arr(4) End Sub Test1 sẽ bị lỗi. Mà phải sửa thành MsgBox Arr(1, 4) Lần chỉnh sửa cuối: 24/3/11 Upvote 0 viehoai

viehoai

Thành viên gắn bó
Tham gia 22/5/09 Bài viết 2,599 Được thích 2,908
ptm0412 đã viết: Arr(i, j) là phần tử của mảng tại dòng i, cột j của mảng Do khai báo Dim Arr As variant và không khai báo chiều, nên mặc định Arr là mảng 2 chiều A1:A10 là mảng dọc, không có nghĩa là mảng 1 chiều, đó là mảng 10 dòng 1 cột. Muốn khai báo mảng 1 chiều thì khai báo Dim Arr As variant Redim Arr(10) Nhưng lúc này mặc định mảng 1 chiều lại là mảng ngang. Túm lại, mảng dọc bắt buộc là mảng 2 chiều. Nhấp chuột vào đây để mở rộng...
Xin anh giải thích thêm 1. Thế trường hợp Mãng 1 chiều là mãng ngang với các phần tử là giá trị từ A1 đến A10 không được hả anh ? 2. Như trên anh khái báo PHP:Sao chép. Dim Arr As variant Redim Arr(10) Không khai báo luôn PHP:Sao chép. Dim Arr(10) Mà phải Redim ? Cảm ơn anh nhiều Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
viehoai đã viết: Xin anh giải thích thêm 1. Thế trường hợp Mãng 1 chiều là mãng ngang với các phần tử là giá trị từ A1 đến A10 không được hả anh ? 2. Không khai báo luôn Dim Arr(10)Mà phải Redim Nhấp chuột vào đây để mở rộng...
1. Mảng ngang với các giá trị từ A1 đến A10: Được, gán từng giá trị một.: Nhưng vẫn là ngang nhé, nên nếu gán ngược xuống sheet thì phải coi chừng quên. PHP:Sao chép. Sub Test3 () Dim Arr(1 to 10) For i = 1 to 10 Arr(i) = Cells(i, 1) Next Range("B1:B10") = Arr Range("C5:L5") = Arr End Sub Ta sẽ thấy B1:B10 cả 10 ô có cùng giá trị của A1. trong khi đó C5:L5 hiện đầy đủ theo hàng ngang. 2. Khai báo Arr(10) hay Khai báo Arr rồi ReDim Arr(10): Tác dụng giống nhau. Nhưng Redim có cái lợi hơn vì cứ khai báo mảng khi kích thước mảng chưa biết. Sau đó tính toán kích thước xong mới ReDim lại. 3. Ghi chú: Mặc định phần tử đầu của mảng đánh số 0, nên Arr(10) sẽ có 11 phần tử từ 0 đến 10. Và khi gán Cell(i, j) cho phần tử, sẽ bị lỗi vì không có cells(0,j) hoặc cells(i, 0) Có 2 cách để cho Arr bắt đầu bằng 1: - Dùng câu lệnh Option Base 1 trên đầu module - Khai báo Arr(1 to 10), hoặc Arr(1 to 10, 1 to 1) Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
viehoai đã viết: Xin anh giải thích thêm 1. Thế trường hợp Mãng 1 chiều là mãng ngang với các phần tử là giá trị từ A1 đến A10 không được hả anh ? 2. Như trên anh khái báo PHP:Sao chép. Dim Arr As variant Redim Arr(10) Không khai báo luôn PHP:Sao chép. Dim Arr(10) Mà phải Redim ? Cảm ơn anh nhiều Nhấp chuột vào đây để mở rộng...
Ban chỉ cần nhớ điều này: - Range và mảng không giống nhau - 1 Range sau khi biến đổi thành mảng thì đó luôn là mảng 2 chiều - Muốn biến thành mảng 1 chiều phải thêm các công đoạn khác, chẳng hạn dùng For... Next hoặc hàm TRANSPOSE ----------- Hiểu thế là mọi chuyện êm xuôi Upvote 0 viehoai

viehoai

Thành viên gắn bó
Tham gia 22/5/09 Bài viết 2,599 Được thích 2,908
ndu96081631 đã viết: Ban chỉ cần nhớ điều này: - Range và mảng không giống nhau - 1 Range sau khi biến đổi thành mảng thì đó luôn là mảng 2 chiều - Muốn biến thành mảng 1 chiều phải thêm các công đoạn khác, chẳng hạn dùng For... Next hoặc hàm TRANSPOSE ----------- Hiểu thế là mọi chuyện êm xuôi Nhấp chuột vào đây để mở rộng...
3 ý trên em hiểu sâu được vấn đề hơn. Trường hợp "Muốn biến thành mảng 1 chiều phải thêm các công đoạn khác, chẳng hạn dùng For... Next hoặc hàm TRANSPOSE" em hiểu được nhưng cách làm theo Transpost thì chưa biết, xin Sư phụ cho ví dụ. Cảm ơn Sư phụ và Thầy Mỹ Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
viehoai đã viết: 3 ý trên em hiểu sâu được vấn đề hơn. Trường hợp "Muốn biến thành mảng 1 chiều phải thêm các công đoạn khác, chẳng hạn dùng For... Next hoặc hàm TRANSPOSE" em hiểu được nhưng cách làm theo Transpost thì chưa biết, xin Sư phụ cho ví dụ. Cảm ơn Sư phụ và Thầy Mỹ Nhấp chuột vào đây để mở rộng...
Ví dụ thế này: - Bạn có dữ liệu tại A1:A10 - Bạn muốn nối chuổi từ các cell ở vùng trên - Bạn nghĩ ra có thể dùng làm Join để làm điều này - Nhưng hàm Join chỉ làm việc với mảng 1 chiều - Vậy việc của bạn phải biến Range("A1:A10") thành 1 mảng và phải là mảng 1 chiều Ta làm như sau: PHP:Sao chép. Sub Test() Dim Arr Arr = Range("A1:A10").Value Arr = WorksheetFunction.Transpose(Arr) Range("B1") = Join(Arr, ", ") End Sub Rút gọn: PHP:Sao chép. Sub Test() Dim Arr Arr = WorksheetFunction.Transpose(Range("A1:A10")) Range("B1") = Join(Arr, ", ") End Sub Rút gọn tiếp: PHP:Sao chép. Sub Test() Range("B1") = Join(WorksheetFunction.Transpose(Range("A1:A10")), ", ") End Sub Tóm lại: - Với 1 Range là 1 vùng có nhiều dòng, 1 cột thì khi qua hàm TRANSPOSE nó sẽ biến thành mảng 1 chiều - Với 1 Range là 1 vùng có nhiều cột, 1 dòng thì khi qua hàm TRANSPOSE nó sẽ biến thành mảng 2 chiều (có thể mường tượng là mảng dọc) ---> Lại qua hàm TRANSPOSE tiếp lần nữa, nó sẽ biến thành mảng 1 chiều Ví dụ: Nối chuổi các cell trong vùng A1:J1 PHP:Sao chép. Sub Test() With WorksheetFunction Range("A2") = Join(.Transpose(.Transpose(Range("A1:J1"))), ", ") End With End Sub Phải 2 lần TRANSPOSE mới có thể biến Range("A1:J1") thành mảng 1 chiều ------------- Nói thêm: - Đã gọi là mảng 1 chiều thì không mường tượng nó là DỌC NGANG gì cả... đơn giàn là MẢNG 1 CHIỀU thôi - Mảng 1 chiều và 2 chiều có thể mường tượng chúng khác nhau như khi so sánh ĐƯỜNG THẰNG và MẶT PHẲNG vậy (đường thẳng chỉ có duy nhất chiều dài, còn mặt phẳng thì mới có 2 chiều DỌC, NGANG) Lần chỉnh sửa cuối: 25/3/11 Upvote 1 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
ndu96081631 đã viết: Nói thêm: - Đã gọi là mảng 1 chiều thì không mường tượng nó là DỌC NGANG gì cả... đơn giàn là MẢNG 1 CHIỀU thôi - Mảng 1 chiều và 2 chiều có thể mường tượng chúng khác nhau như khi so sánh ĐƯỜNG THẰNG và MẶT PHẲNG vậy (đường thẳng chỉ có duy nhất chiều dài, còn mặt phẳng thì mới có 2 chiều DỌC, NGANG) Nhấp chuột vào đây để mở rộng...
Dẫu rằng nói 1 chiều thì không có dọc ngang, tựa như đường thẳng, và khác với mặt phẳng. Nhưng đó là xét theo hệ quy chiếu là đứng trong không gian 1 chiều và đang chỉ nhận thức được 1 chiều. Giả sử tồn tại 1 thế giới mà sinh vật ở đó chỉ nhận thức được 1 chiều trong không gian, thì khi 1 vật thể di chuyển dọc theo đường thẳng, anh ta sẽ trông thấy sự dịch chuyển. Nếu 1 sinh vật ở hành tinh khác đến và nhận thức được không gian 2 chiều, anh ta đi ra khỏi đường thẳng vào chiều thứ 2. Vậy sinh vật tại đó sẽ nghĩ gì? Nó cho rằng sinh vật lạ đã biến mất. Còn đối với sinh vật ở hành tinh khác đến, thì nghĩ: tao đâu có biến mất, mày chỉ đi được theo chiều X của tao, còn tao đi 2 hướng, vừa X vừa Y. (Suy luận tương tự giữa không gian 2 chiều, 3 chiều, và n chiều) Và khi sinh vật lạ này kể cho đồng hương của nó nghe, nó sẽ kể: Tụi nó chỉ đi ngang hông à, hông có ra khỏi cái đường thẳng đó được. Chữ ngang để làm chi? để vẽ ra cho đồng hương nó hiểu. Tưởng tượng xong, quay về Array. Array 1 chiều mà gán xuống sheet (bảng 2 chiều), thì phải gán ngang. Gán dọc là sai. Nên vẫn phải hình dung mảng 1 chiều là mảng ngang! Vì ta là thành viên GPE, thế giới GPE là thế giới bảng tính có ít nhất 2 chiều, và ta là sinh vật nhận thức được n chiều.​ Lần chỉnh sửa cuối: 26/3/11 Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
ptm0412 đã viết: Chữ ngang để làm chi? để vẽ ra cho đồng hương nó hiểu. Tưởng tượng xong, quay về Array. Array 1 chiều mà gán xuống sheet (bảng 2 chiều), thì phải gán ngang. Gán dọc là sai. Nhấp chuột vào đây để mở rộng...
Dạ, cái này em biết nhưng nhiều lúc em sợ rằng mường tượng nhiều quá sẽ dẫn đến ngộ nhận Giống như trường hợp Add List cho 1 ListBox - Em có dữ liệu tại A1:A3 - Muốn muốn Add dữ liệu này vào ListBox1 - Mường tượng rằng ListBox được xếp theo chiều dọc, mà thằng A1:A3 cũng đang dọc, vậy thì cứ Add thoải mái PHP:Sao chép. Sub Test1() Sheet1.ListBox1.List() = Range("A1:A3").Value End Sub Test thử thấy OK Còn hơi nghi ngờ, Test thử bằng code thứ 2: PHP:Sao chép. Sub Test2() Dim Arr Arr = Sheet1.ListBox1.List MsgBox IsArray(Arr) End Sub Kết quả = TRUE??? Vậy là sao? Từ 1 mảng "dọc" (2 chiều) sau cho vào ListBox, lấy ra kiểm tra nó lại thành "ngang" (1 chiều) ??? Test tiếp 1 sub khác: PHP:Sao chép. Sub Test3() Dim Arr Arr = Array("a", "b", "c") Sheet1.ListBox1.List() = Arr End Sub Arr đương nhiên là mảng 1 chiều, và nó "ngang" theo cách nói của sư phụ, vậy mà vẫn Add vào ListBox được bình thường Đồng ý rằng có sự "biến đổi" gì đó trong quá trình Add List nhưng nếu ngay từ đầu mình quá tin vào cái vụ "ngang" này thì không khỏi có lúc bị lúng túng (em đã từng bị vậy) Cũng giống như trường hợp mảng 1 chiều khi gán vào Sheet thì phải gán theo chiều ngang, nhưng khi lấy dữ liệu "ngang" ấy từ sheet để biến nó thành mảng thì mảng ấy lại vẫn cứ... 2 chiều (chẳng làm cách nào cho nó "ngang" được nếu không thông qua quá trình biến đổi) Thôi thì ngay từ đầu khẳng định rằng mảng 1 chiều không "ngang, dọc" gì cả... Có "ngang" chăng là do ta tự mường tượng ra cho phù hợp với những suy luận của riêng ta mà thôi Ẹc... Ẹc... (Mong sư phụ đừng giận em phản biện, vì đàng nào thì mấy cái Array này cũng do sư phụ dạy em) Lần chỉnh sửa cuối: 26/3/11 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Ziận kí rì mà ziận. Có trao đổi mới cùng tiến bộ chứ. Vấn đề ở trong bài của ndu vừa viết, so với việc "gán xuống sheet phải gán ngang" đó là 2 sự tương tác khác nhau: - Gán xuống sheet là sự tương tác giữa 2 thế giới 1 chiều và 2 chiều. - Xử lý Arr, xào nấu chế biến, mắm muối tương cà, đó là sự tương tác giữa thế giới 1 chiều với nhau. Range của sheet, rõ ràng là 2 chiều. Array là sản phẩm của VBA, anh này thông minh, nên 1 chiều cũng lụm, 2 chiều cũng lụm. Nhưng hễ 1 chiều thì anh í thích "ngang" cơ. Nên lụm về là quất sang 1 chiều cho tụi dân bản địa nó xơi cho nhanh. Còn khi gán vào Listbox, là sản phẩm của VBA (1 chiều hoặc 2 chiều), bản thân cái listbox là hàng xuất khẩu, đã thiết kế dọc cho người 2 chiều dùng, nên nó lại phải xoay dọc ra trước khi gán. Code Test3 ở trên, nếu thêm 2 dòng lệnh này sẽ thấy: PHP:Sao chép. Sub Test3() Dim Arr Arr = Array("a", "b", "c") Sheet1.ListBox1.List() = Arr Range("C1:E1") = Arr Range("C2:E2") = ListBox1.List() End Sub Arr vẫn cứ ngang, còn Listbox thì vẫn cứ dọc. Vì listbox dùng để tương tác với cư dân 2 chiều. Còn Arr để bọn nó xơi với nhau. Cáng nói càng thấy khó xơi, nhưng nếu hiểu bản chất thì tốt hơn. Thôi thì Nó dọc ngang gì kệ nó, nhưng nhớ khi gán xuống sheet thì nó ngang, muốn gán dọc thì transpose. Hoặc chẳng cần nhớ. Gán xuống thấy sai thì gán lại. Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
Còn hơi nghi ngờ, Test thử bằng code thứ 2: PHP:Sao chép. Sub Test2() Dim Arr Arr = Sheet1.ListBox1.List MsgBox IsArray(Arr) End Sub </span> </span> Kết quả = TRUE??? Vậy là sao? Từ 1 mảng "dọc" (2 chiều) sau cho vào ListBox, lấy ra kiểm tra nó lại thành "ngang" (1 chiều) Nhấp chuột vào đây để mở rộng...
Khúc này ndu chưa test đúng cách. IsArray(Arr) = True đâu thể khẳng định nó 1 chiều, hay là ngang? Phải Test thế này: PHP:Sao chép. Sub test4() Dim Arr Arr = Sheet1.ListBox1.List MsgBox IsArray(Arr) Range("C1:E1") = Arr Range("C2:E2") = ListBox1.List() MsgBox Arr(1) End Sub Sẽ bị lỗi dòng cuối. Nếu Arr là mảng ngang, sao gán xuống sheet hàng ngang bị sai? Nếu Arr là mảng 1 chiều, sao không truy xuất được Arr(1)? Vậy mà thay câu cuối bằng MsgBox Arr(1, 0) thì OK. Vì Arr là 2 chiều, kính thưa toàn thể đại biểu! Vì Arr lấy giá trị từ Listbox, nên Listbox cũng 2 chiều, kính thưa toàn thể anh chị em quan viên hai họ! Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
ptm0412 đã viết: Nếu Arr là mảng ngang, sao gán xuống sheet hàng ngang bị sai? Nếu Arr là mảng 1 chiều, sao không truy xuất được Arr(1)? Vậy mà thay câu cuối bằng MsgBox Arr(1, 0) thì OK. Vì Arr là 2 chiều, kính thưa toàn thể đại biểu! Vì Arr lấy giá trị từ Listbox, nên Listbox cũng 2 chiều, kính thưa toàn thể anh chị em quan viên hai họ! Nhấp chuột vào đây để mở rộng...
Vâng, em sơ suất chổ này nhưng sư phụ test như vậy cũng nói lên rằng: Mảng 1 chiều (mà sư phụ cho là ngang ấy) sau khi đưa vào ListBox thì nó lại biến thành dọc ( 2 chiều) giống y chang trường hợp gán mảng vào Range Ý em muốn nói rằng: Nếu ta nhìn vào Range trên sheet thì sau khi thí nghiệm ta sẽ cảm giác "Thì ra mảng 1 chiều nó hơi... ngang ngang"... Nhưng nếu lấy ListBox làm thí nghiệm thì ta lại nghĩ ngược lại: "Thì ra mảng 1 chiều nó hơi.. dọc dọc" Khi nghiên cứu sâu hơn về mảng thì cái thuật ngữ "dọc, ngang" đôi lúc sẽ khiến ta bị rối Ẹc... Ẹc... (Ý em chỉ nới về sự mường tượng, sợ rằng "chấp nhận" sẽ khiến ta "ngộ nhận" chứ không phải em không đồng ý với các ý kiến của sư phụ) -------------------------------------- Nói thêm 1 điều theo kinh nghiệm của em:Để biết mảng có phải 1 chiều hay không, em thường dùng hàm Join để test ---> Nếu báo lỗi thì đấy không phải là mảng 1 chiều -------------------------------- Cuối cùng em kết nhất chổ này:
ptm0412 đã viết: Thôi thì Nó dọc ngang gì kệ nó, nhưng nhớ khi gán xuống sheet thì nó ngang, muốn gán dọc thì transpose. Hoặc chẳng cần nhớ. Gán xuống thấy sai thì gán lại. Nhấp chuột vào đây để mở rộng...
Vì khi viết code em cũng từng làm thế Lần chỉnh sửa cuối: 26/3/11 Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant
ndu96081631 đã viết: (Ý em chỉ nới về sự mường tượng, sợ rằng "chấp nhận" sẽ khiến ta "ngộ nhận" chứ không phải em không đồng ý với các ý kiến của sư phụ) Nhấp chuột vào đây để mở rộng...
Vậy mường tượng thêm 1 điều, Listbox và những cái tương tự là đồ xuất khẩu cho cư dân 2 chiều xài. Thì dân 1 chiều phải chế tác cho phù hợp con mắt 2 chiều mới bán được. Còn cứ lấy sản phẩm 1 chiều của nó về xài, thì tự mình phải chế lại. Lần chỉnh sửa cuối: 26/3/11 Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
ptm0412 đã viết: Vậy mường tượng thêm 1 điều, Listbox và những cái tương tự là đồ xuất khẩu cho cư dân 2 chiều xài. Thì dân 1 chiều phải chế tác cho phù hợp con mắt 2 chiều mới bán được. Còn cứ lấy sản phẩm 1 chiều của nó về xài, thì tự mình phải chế lại. Nhấp chuột vào đây để mở rộng...
Cảm ơn sư phụ... Để tài rất thú vị! Vậy sư phụ có dự định viết 1 bài về Array (1 chiều và 2 chiều) không nhỉ? Cũng cơ bản về dễ hiểu giống như bài viết về For.. Next ấy (Em đã từng nhở bài viết ấy mà nên người) Upvote 0 ptm0412

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,447 Được thích 37,109 Donate (Momo) Donate Giới tính Nam Nghề nghiệp Consultant Hy vọng rằng đây chính là topic đó. Theo cách là ai có thắc mắc cứ vào đây hỏi, ai biết thì cứ trả lời. Mình sẽ sẵn sàng tham gia. Mà đã tham gia rồi đấy thôi? Nói kiểu không gian 1 chiều, 2 chiều, và sinh vật ngoài hành tinh cũng đâu có khó hiểu lắm nhỉ? Upvote 0 thanhlanh

thanhlanh

Thành viên tích cực
Tham gia 21/2/08 Bài viết 858 Được thích 1,211 Trong mỗi vòng lặp mình đã tạo được bốn mảng con có kích thước bằng nhau là Arr1(1 to n,1); Arr2(1 to n,1); Arr3(1 to n,1) và Arr4(1to n,1). Mỗi vòng lặp kích thước mảng (giá trị n) khác nhau. Nhờ các bạn chỉ cho đoạn code: Trong vòng lặp đó nối dần các mảng con thành: - Mảng dạng ma trận bốn cột ArrTg(Arr1, Arr2, Arr3, Arr4) số dòng bằng tổng các kích thước của tất cả các lần lặp (xích ma(n)). - Hoặc nối thành các mảng (bốn mảng) một chiều có cùng kích thước (mình nghĩ cái này khả thi hơn) nhờ các bạn làm cho kiểu này nhé! Lần chỉnh sửa cuối: 3/4/11 Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,950
thanhlanh đã viết: Trong mỗi vòng lặp mình đã tạo được bốn mảng con có kích thước bằng nhau là Arr1(1 to n,1); Arr2(1 to n,1); Arr3(1 to n,1) và Arr4(1to n,1). Mỗi vòng lặp kích thước mảng (giá trị n) khác nhau. Nhờ các bạn chỉ cho đoạn code: Trong vòng lặp đó nối dần các mảng con thành: - Mảng dạng ma trận bốn cột ArrTg(Arr1, Arr2, Arr3, Arr4) số dòng bằng tổng các kích thước của tất cả các lần lặp (xích ma(n)). - Hoặc nối thành các mảng (bốn mảng) một chiều có cùng kích thước (mình nghĩ cái này khả thi hơn) nhờ các bạn làm cho kiểu này nhé! Nhấp chuột vào đây để mở rộng...
Hổng biết ý anh có phải là gộp 4 mảng ấy thành Arr(1 to n, 1 to 4) không nhỉ? ---> Mảng này nếu gán vào bảng tính thì mỗi cột của nó sẽ đúng = 1 mảng con Nếu không phải như em suy đoán thì anh cứ đưa ví dụ cụ thế lên đi Upvote 0
  • 1
  • 2
  • 3
  • Go to page

    Tiếp tục
  • 77
Tiếp 1 of 77

Go to page

Tiếp tục Tiếp Last Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây. Web KT

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

J Hàm tách dữ liệu ra nhiều cột
  • jusend
  • Thứ tư lúc 16:43
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 8 Đọc 274 Hôm nay lúc 05:54 Trần Văn Bình T B Suy nghĩ của tui
    • Thích
  • binhminhcaonguyen2
  • 9/10/12
  • Chia sẻ
2 3 Trả lời 59 Đọc 6K Hôm nay lúc 05:31 SA_DQ SA_DQ T Tính tổng và gộp dữ liệu
  • tungns1210
  • 21/9/20
  • Pivot table
Trả lời 4 Đọc 601 Hôm nay lúc 01:52 lantqn L WINDOWS02 Cách để font Times Rew Roman và các phông (font) khác (nếu có) không bị lỗi trên PowerPiont 2003
  • WINDOWS02
  • Hôm qua, lúc 14:05
  • Ứng dụng Báo cáo và Thuyết trình
Trả lời 2 Đọc 72 Hôm qua, lúc 22:39 ptm0412 ptm0412 huuthang_bd Add-in DeleteVirusMacro - Xóa và ngăn chặn virus macro
    • Thích
    • Yêu thích
    • Chấp nhận
  • huuthang_bd
  • 2/6/22
  • Các Add-ins cho excel
2 Trả lời 25 Đọc 8K Hôm qua, lúc 21:39 WINDOWS02 WINDOWS02 WINDOWS02 Tôi có thể sử dụng Office song song với nhau không?
    • Cười
  • WINDOWS02
  • Hôm qua, lúc 20:17
  • Ứng dụng Báo cáo và Thuyết trình
Trả lời 3 Đọc 70 Hôm qua, lúc 21:37 WINDOWS02 WINDOWS02 test1986
  • Question
Tìm hiểu về việc tạo note bằng vba
  • test1986
  • Thứ sáu lúc 11:09
  • Lập Trình với Excel
Trả lời 10 Đọc 255 Hôm qua, lúc 15:46 test1986 test1986 D Font Times New Roman bị lỗi khi mở Powerpoint2003 (nhưng Powerpoint2007 lại được)
  • Dauthivan
  • 13/12/11
  • Ứng dụng Báo cáo và Thuyết trình
Trả lời 4 Đọc 8K Hôm qua, lúc 14:06 WINDOWS02 WINDOWS02 H Code lấy đáp án từ file word
    • Phẫn nộ
    • Thích
  • Hoale85
  • Thứ năm lúc 11:16
  • Những vấn đề chung
Trả lời 9 Đọc 282 Hôm qua, lúc 11:23 ptm0412 ptm0412 T Xin giúp đỡ lấy dữ liệu trong lịch học
  • thuong-minh
  • Hôm qua, lúc 11:10
  • Hàm và công thức Excel
Trả lời 0 Đọc 58 Hôm qua, lúc 11:10 thuong-minh T DMQ
  • Question
Xóa dòng trùng.
  • DMQ
  • Thứ tư lúc 21:16
  • Lập Trình với Excel
Trả lời 15 Đọc 385 Hôm qua, lúc 05:35 SA_DQ SA_DQ H nhờ mọi người giúp
    • Buồn
  • Huy Đặng
  • Thứ sáu lúc 15:20
  • Hỏi đáp những vấn đề khác
Trả lời 2 Đọc 86 Thứ sáu lúc 17:29 Huy Đặng H Y Xin giúp đỡ của mọi người về cách sắp sếp file và hàm
  • yeunghelayeutien
  • Thứ sáu lúc 15:50
  • Hàm và công thức Excel
Trả lời 1 Đọc 91 Thứ sáu lúc 17:20 hvnhpro H T (Góc nhờ vả) Xin tư vấn hàm tìm theo mã khách và cột phụ
  • tusedo
  • Thứ sáu lúc 15:26
  • Hàm và công thức Excel
Trả lời 2 Đọc 98 Thứ sáu lúc 17:06 tusedo T ongke0711
  • Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba
    • Thích
    • Yêu thích
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
12 13 14 Trả lời 267 Đọc 16K Thứ sáu lúc 15:54 ongke0711 ongke0711 Nguyễn Hậu LK Nhờ giúp: Nhận vùng giữ liệu theo số biên bản nghiệm thu
  • Nguyễn Hậu LK
  • Thứ tư lúc 16:18
  • Hỏi đáp những vấn đề khác
Trả lời 2 Đọc 142 Thứ sáu lúc 14:53 hvnhpro H noisy Nhờ hướng dẫn các xử lý hiển thị
  • noisy
  • 23/11/24
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 3 Đọc 192 Thứ sáu lúc 13:29 noisy noisy B
  • Question
Windows Form Làm thế nào để định vị cột và dòng nhập dữ liệu
  • binhtv69
  • 22/11/24
  • Lập Trình với Excel
2 3 Trả lời 43 Đọc 1K Thứ sáu lúc 13:26 test1986 test1986 N Định mức nguyên vật liệu
  • nghiemcongdien
  • 9/11/24
  • Google Spreadsheets
2 Trả lời 37 Đọc 1K Thứ sáu lúc 12:31 yeudoi yeudoi heocondethuong1235 Giúp về xử lý số liệu trong excel!
  • heocondethuong1235
  • Thứ năm lúc 13:45
  • Những vấn đề chung
Trả lời 7 Đọc 203 Thứ sáu lúc 11:37 ngocbaovu ngocbaovu Xem thêm… Chia sẻ: Facebook X (Twitter) Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • Không tìm thấy.

Thành viên có điểm tương tác cao nhất tháng

  • Không tìm thấy.
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
  • Lập Trình với Excel
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Dãy Trong Vba