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 Featured content 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 đề Note 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
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 Thread starter viehoai
  • Ngày gửi 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,921 Được thích 11,294 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,472 Được thích 37,139 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,472 Được thích 37,139 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,472 Được thích 37,139 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,951
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,951
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,472 Được thích 37,139 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,951
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,472 Được thích 37,139 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,472 Được thích 37,139 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,951
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,472 Được thích 37,139 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,951
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,472 Được thích 37,139 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,951
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

tutepp Lỗi không mở được file Excel, chỉ mở được khi dùng Ultraview
  • tutepp
  • Hôm qua, lúc 09:45
  • Những vấn đề chung
Trả lời 7 Đọc 89 35 phút trước tutepp tutepp C Code Set password File Excel
  • Cúc Hr
  • Hôm qua, lúc 17:19
  • Những vấn đề chung
Trả lời 3 Đọc 111 Hôm nay lúc 08:40 hvnhpro H T Xin giúp em copy cột C ở tất cả các sheet vào file import_template. Em cảm ơn ạ.
  • thuong.dothict
  • Thứ năm lúc 16:40
  • Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
Trả lời 4 Đọc 111 Hôm nay lúc 08:37 thuong.dothict T dangtuan1212 Mình cần hỗ trợ in excel 2 mặt căn lề trái phải theo trang chẵn lẻ
  • dangtuan1212
  • Hôm qua, lúc 22:16
  • Các Add-ins cho excel
Trả lời 2 Đọc 37 Hôm nay lúc 07:49 dangtuan1212 dangtuan1212 ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
14 15 16 Trả lời 302 Đọc 20K Hôm qua, lúc 17:48 bimbebeo bimbebeo X Tự động giãn dòng và ẩn các dòng bị bỏ trống
  • xuanthucle
  • Thứ hai lúc 17:59
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 7 Đọc 300 Hôm qua, lúc 17:03 HUONGHCKT H T Cố định các dòng merger cell để khi in không bị ẩn mất nội dung khi dùng Autofit row height
  • tuannguyenmoh
  • Hôm qua, lúc 10:06
  • Định dạng, trình bày, in ấn bảng tính
Trả lời 1 Đọc 46 Hôm qua, lúc 15:20 yaaasoo01 Y HeSanbi
  • Đã giải quyết
HÀM FITROW - Co giãn dòng tự động tối ưu nhất cho Excel v2.44 (*28/12/2024)
    • Thích
    • Yêu thích
  • HeSanbi
  • 18/4/21
  • Lập Trình với Excel
2 3 Trả lời 53 Đọc 22K Hôm qua, lúc 14:35 minhminh040499 minhminh040499 GPE-Trợ Lý [GPE] TALK SHOW NHỮNG ĐIỀU NHỎ TÁC DỤNG LỚN TRONG PIVOT TABLE
    • Thích
  • GPE-Trợ Lý
  • Hôm qua, lúc 11:01
  • Học tập Online
Trả lời 1 Đọc 199 Hôm qua, lúc 11:03 GPE-Trợ Lý GPE-Trợ Lý 1 Phát triển một VBE trong Delphi để tạo một cửa sổ công cụ.
  • 125479980
  • Thứ năm lúc 19:56
  • Excel và các ngôn ngữ lập trình khác
Trả lời 8 Đọc 198 Hôm qua, lúc 10:42 nguyendang95 N Hoàng Trọng Nghĩa
  • Suggestion Suggestion
Tặng các bạn file "QUAY SỐ TRÚNG THƯỞNG"
    • Thích
  • Hoàng Trọng Nghĩa
  • 24/8/16
  • Bài viết nổi bật và thông báo
Trả lời 9 Đọc 4K Hôm qua, lúc 09:02 anthanh32 anthanh32 KTS NGUYEN DU Các bác có biết chỉnh mục trống này về dạng word cơ bản không ạ.
  • KTS NGUYEN DU
  • Thứ năm lúc 14:30
  • MS Word và Các phần mềm soạn thảo văn bản
Trả lời 5 Đọc 151 Thứ năm lúc 16:33 KTS NGUYEN DU KTS NGUYEN DU giaiphap Chia sẻ cách tạo gợi ý cho hàm trong Excel bằng thư viện ExcelDna.
    • Thích
    • Yêu thích
    • Cảm ơn
  • giaiphap
  • 13/1/23
  • Excel và các ngôn ngữ lập trình khác
Trả lời 6 Đọc 2K Thứ năm lúc 16:25 Phương Nguyễn 89 Phương Nguyễn 89 hahuykhuong
  • Question Question
link file pdf hóa đơn bằng vba
  • hahuykhuong
  • Thứ tư lúc 20:19
  • Lập Trình với Excel
Trả lời 3 Đọc 176 Thứ năm lúc 14:14 hahuykhuong hahuykhuong Manhhung90
  • Question Question
Xin giúp chuyển dữ liệu từ cột dọc sang hàng ngang theo điều kiện
    • Buồn
  • Manhhung90
  • Thứ hai lúc 19:22
  • Lập Trình với Excel
Trả lời 10 Đọc 256 Thứ năm lúc 11:27 Manhhung90 Manhhung90 M
  • Question Question
Code VBA tìm mã kiện gỗ còn tồn kho
  • moihocvba
  • Thứ ba lúc 10:47
  • Lập Trình với Excel
Trả lời 7 Đọc 316 Thứ năm lúc 10:20 BuiQuangThuan B HeSanbi
  • Đã giải quyết
ExplorerXL - Quản lý thư mục với Excel: tìm, đổi tên, sao chép, di chuyển và xóa
    • Thích
    • Yêu thích
    • Cảm ơn
  • HeSanbi
  • 20/9/19
  • Lập Trình với Excel
3 4 5 Trả lời 80 Đọc 16K Thứ năm lúc 00:45 ngochienbmt N T cách viết hàm if
  • tuyennhnobk
  • 18/12/24
  • Hàm và công thức Excel
Trả lời 4 Đọc 188 Thứ tư lúc 22:30 VetMini V GPE-Trợ Lý KHÓA HỌC BỨT PHÁ KỸ NĂNG EXCEL
    • Thích
    • Yêu thích
  • GPE-Trợ Lý
  • 15/11/24
  • Học tập Online
Trả lời 2 Đọc 951 Thứ tư lúc 16:58 nguyentnct N N
  • Question Question
Cần giúp rút gọn code vba
  • nvthanhdienbien
  • Thứ hai lúc 15:12
  • Lập Trình với Excel
Trả lời 8 Đọc 288 Thứ tư lúc 16:43 VetMini V Xem thêm… Chia sẻ: Facebook X (Twitter) LinkedIn 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

  • Hoàng Tuấn 868 32
  • HeSanbi 30
  • LINHCM 25
  • ptm0412 25
  • HieuCD 22
  • hoangtuaotrang_hp_vn 21
  • ongke0711 19
  • SA_DQ 18
  • BuiQuangThuan 18
  • HUONGHCKT 18
  • qtm1987 17
  • DeTong 17
  • hvnhpro 17
  • huuthang_bd 16
  • SteveNguyen1991 14
  • hoangminhtien 13
  • Nguyễn Duy Tuân 12
  • Manhhung90 12
  • GPE-Trợ Lý 11
  • Duy Tùng 9x 10

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

  • HieuCD 104
  • Hoàng Tuấn 868 34
  • huuthang_bd 34
  • HUONGHCKT 31
  • hoangtuaotrang_hp_vn 28
  • HeSanbi 28
  • SA_DQ 27
  • Phan Thế Hiệp 27
  • befaint 26
  • DeTong 25
  • hoangminhtien 24
  • GPE-Trợ Lý 24
  • ptm0412 22
  • Phuocam 17
  • ongke0711 17
  • Hai Lúa Miền Tây 15
  • longtay1111 13
  • NT Ngoc Yen 12
  • Nguyễn Duy Tuân 11
  • OverAC 11

Đếm ngược thời gian

000 Ngày 00 Giờ 00 phút 00 giây Chúc mừng năm mới
  • Trang chủ
  • Diễn đàn
  • 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 » Gán Giá Trị Cho Mảng Trong Vba