Các câu hỏi về mảng trong VBA (Array)

Liên hệ QC

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ị
 
cảm ơn hai

mình đang mò mẫm nên nếu có thể nhờ bạn chỉ giúp có thể thay sumif bằng cách nào khác được ạ. Cảm ơn bạn
Bài đã được tự động gộp:


mình có nói là lỗi khai báo biến ạ. còn quá trình xử lý dữ liệu mình đã xử lý lỗi div0 rồi ạ. cảm ơn bạn
Lỗi cái nào bạn chụp màn hình cái lỗi lên đây xem nào.
 
Upvote 0
Lỗi cái nào bạn chụp màn hình cái lỗi lên đây xem nào.
rất cảm ơn bạn đã quan tâm huớng dẫn giúp, mình đã mò ra lỗi rồi ạ. nếu có thể nhờ bạn huớng dẫn mình cách thay thế hàm sumif hoặc phương pháp nào nhanh hơn sử dụng hàm sumif để tăng tốc. Rất cảm ơn bạn
 
Upvote 0
Khai báo biến, nếu có sơ xuất là ở chỗ này:
Dim i, j As Long
Chứ chõ này có gì đâu
Dim sArray, arrr, Arr()

Tuy nhiên, tôi thì khai như vầy:
Dim sArray1, sArray2 ' Dim sArray, arrr
Dim Arr()
Nhưng thằng cùng loại, giống nhiệm vụ thì khai gần nhau, và tên gần nhau. Thằng khác loại thì sang dòng khác.
 
Upvote 0
Khai báo biến, nếu có sơ xuất là ở chỗ này:
Dim i, j As Long
Chứ chõ này có gì đâu
Dim sArray, arrr, Arr()

Tuy nhiên, tôi thì khai như vầy:
Dim sArray1, sArray2 ' Dim sArray, arrr
Dim Arr()
Nhưng thằng cùng loại, giống nhiệm vụ thì khai gần nhau, và tên gần nhau. Thằng khác loại thì sang dòng khác.
cảm ơn bạn nhiều ạ
 
Upvote 0
Thân chào các anh. Giúp e vấn đề về mảng với.
Trong file đính kèm, em tham khảo và ghép từng đoạn code để hoàn thành các bước, giờ còn 1 bước cuối mà e ko biết cách nào làm tiếp...
- Về phần kiểm tra dữ liệu khi chọn mã ở Sheet Main thì tạm ok.
- Về phần nhập dữ liệu mới qua Sheet TH_DATA, thì e muốn so sánh mảng dữ liệu mới và mảng dữ liệu cũ có trùng nhau không, nếu trùng thì hỏi, còn không trùng thì nhập mới.
+ Vì trong Sheet TH_DATA có nhiều mã giống nhau nhưng các nội dung theo mã sẽ khác nhau.
Mong các a giúp đỡ. nếu Code trong file có gì chưa đúng nhờ cải thiện e với.
 

File đính kèm

  • Kiem tra & tong hop du lieu.xlsb
    58.9 KB · Đọc: 8
Upvote 0
Vấn đề của bạn nói tính ra là cả đống chứ đâu phải chỉ là mảng. Nên lập riêng một thớt mà phân giải cho rõ rệt
 
Upvote 0
Hi cả nhà
Mình mới tiếp cận dùng mảng vào trong lập trình VBA, cũng đọc từ đầu topic đến giờ nhưng vẫn còn mông lung, mình có bài toán nhỏ này mong các bạn giúp để thông não ra.
Untitled.jpg
Sheets Data, có vùng A1 : D20,

Mình khai báo mảng 1 lấy dữ liệu từ vùng A1 : D20 rồi (Đặt tên là Mang1),
Mình muốn:
1. Tạo một Mảng 2 (Mang2) dựa trên Mang1, nhưng dữ liệu chỉ gồm cột từ A1 đến C20, và gán giá trị Mang2 Vào ô A1, Sheets KQ1
2.Tạo một Mảng 3 (Mang3) dựa trên Mang1. Theo đó: Xắp xếp dữ liệu Mang1 theo thứ tự Cột Tên Sản phẩm (thứ tự A-B) rồi đến Giá gốc (thứ tự từ Bé đến to), , và gán giá trị Mang3 Vào ô A1, Sheets KQ2
3. Tạo một Mảng 4 (Mang4) dựa trên Mang1. Theo đó chỉ lấy giá trị duy nhất của cột A1:A20
4. Tạo một mảng 5 (Mang5) dựa vào Mang1. Theo đó lấy giá trị của cột A1:A20, xoay thành dữ liệu kiểu hàng ngang, gán kết quả vào ô A1, Sheet KQ3
Cám ớn các bạn
 

File đính kèm

  • Book1.xlsx
    12.1 KB · Đọc: 3
Upvote 0
Hi cả nhà
Mình mới tiếp cận dùng mảng vào trong lập trình VBA, cũng đọc từ đầu topic đến giờ nhưng vẫn còn mông lung, mình có bài toán nhỏ này mong các bạn giúp để thông não ra.
...
Hai với ba cái gì cho mệt. Ngừoi Việt chào hỏi mà dùng tiếng Tây thì cũng đâu có thể là lịch sự. Thà bỏ quách khỏi chào cho xong.

Đây là thớt hỏi về mảng.
Đề bài của bạn tuy là mảng (lời của bạn, chứ nếu tính lại thuật toán thì có thể có cách khác), nhưng nó đâu phải là câu hỏi. Bạn nhờ viết code giùm mà. Lập thớt riêng mà nhờ.

Muón hỏi thì đưa code lên nhờ giải thích và/hoặc chỉ dẫn những chỗ bí.
 
Upvote 0
Hai với ba cái gì cho mệt. Ngừoi Việt chào hỏi mà dùng tiếng Tây thì cũng đâu có thể là lịch sự. Thà bỏ quách khỏi chào cho xong.

Đây là thớt hỏi về mảng.
Đề bài của bạn tuy là mảng (lời của bạn, chứ nếu tính lại thuật toán thì có thể có cách khác), nhưng nó đâu phải là câu hỏi. Bạn nhờ viết code giùm mà. Lập thớt riêng mà nhờ.

Muón hỏi thì đưa code lên nhờ giải thích và/hoặc chỉ dẫn những chỗ bí.
Mình thấy bạn chưa giúp gì nhưng cũng bắt bẻ câu chữ ghê phết, mình ko nhâm thì bạn cũng dùng từ code trong câu trả lời mà, code ko phải tiếng việt đâu
Mình ko nhờ code hộ mà học code qua các câu hỏi, m cũng đọc các bài rồi mới hỏi, nhưng vì các bài toàn giải quyết các vấn đề phức tạp so với một người mới động đến mảng
@ xin lỗi các bạn khác nếu lỡ phải đọc post này, nhưng thực sự m rất dị ứng với kiểu người ko giúp gì người khác mà thích dậy đời
 
Upvote 0
mình ko nhâm thì bạn cũng dùng từ code trong câu trả lời mà, code ko phải tiếng việt đâu
Không ai cấm dùng vài từ tiếng Anh. Có một số từ dùng tiếng Anh sẽ dễ hiểu và ngắn gọn hơn. Đặc biệt về khoa học, công nghệ. Nhưng những câu chào, câu cám ơn và rất nhiều câu khác trong tiếng Việt có, ngắn gọn, dùng hàng ngàn năm rồi. Và người Việt không chấp nhận dùng hai ba trong trường hợp này. Đơn giản bạn thử bước vào một hội trường bất kỳ. Bạn sẽ nói "Hi các bạn?" Nếu không thì bạn đủ biết là vào GPE cũng y như thế.
Góp ý cho bạn thôi. Nếu bạn không chấp nhận thì nói gọn một câu, là bạn không tiếp thu. Thế thôi.
 
Upvote 0
...Mình ko nhờ code hộ mà học code qua các câu hỏi, m cũng đọc các bài rồi mới hỏi, nhưng vì các bài toàn giải quyết các vấn đề phức tạp so với một người mới động đến mảng
...
Dóc. Nếu người ta trả lời bằng cách chỉ dẫn thì biết cách tự code hôn?

...@ xin lỗi các bạn khác nếu lỡ phải đọc post này, nhưng thực sự m rất dị ứng với kiểu người ko giúp gì người khác mà thích dậy đời
Dị ứng cái mốc xì. Nếu thực tâm học code thay vì xin code thì thử hỏi mọi người xem. Ở đây ai cũng biết tôi chuyên môn chỉ dẫn cách code thay vì code giùm.

Học hành mà ham tự ái hảo. Nếu ngày xưa, chúa động Thuỷ Liêm cũng biết tự ái với thái độ của Bồ Đề Lão Tổ thì suốt đời nó cũng chỉ là con khỉ. Đâu có chuyện Tề Thiên Đại Thánh.
 
Lần chỉnh sửa cuối:
  • Cười
Reactions: NHG
Upvote 0
Bác hỏi tôi ấy hở.
Không, tôi không "bị".
Có lẽ người ta biết tôi đã đếm được tới trên 1000 rồi. Muốn khinh, ghét, ... gì tôi thì chịu khó xếp hàng.
(Hiện giờ người đứng cuối là 1007. Số 1008 còn trống)
 
Upvote 0
Chắc chủ topic đang hồi xuân nên có một chút khó tính. Chứ như bọn cháu được hai chú góp ý thì mừng quá là mừng rồi-\\/.-\\/.-\\/.
 
Upvote 0
Hồi xuân mà khó tính thì hồi với ai (?)
Hơn con giáp vừa qua, mình chưa thấy ai khó tính khi hồi xuân cả, bạn mách dùm khi thấy người nào đó thêm nữa dùm nghen!

Mình khai báo mảng 1 lấy dữ liệu từ vùng A1 : D20 rồi (Đặt tên là Mang1),
Mình muốn:
1. Tạo một Mảng 2 (Mang2) dựa trên Mang1, nhưng dữ liệu chỉ gồm cột từ A1 đến C20, và gán giá trị Mang2 Vào ô A1, Sheets KQ1
. . . .
Nếu là mình thì lấy dữ liệu vùng [A1:C20] gán (thẳng) vô mang2 & sau đó đem mảng này gán đi đâu mà chả được (?)
 
Lần chỉnh sửa cuối:
Upvote 0
Hồi xuân mà khó tính thì hồi với ai (?)
Hơn con giáp vừa qua, mình chưa thấy ai khó tính khi hồi xuân cả, bạn mách dùm khi thấy người nào đó thêm nữa dùm nghen!


Nếu là mình thì lấy dữ liệu vùng [A1:C20] gán (thẳng) vô mang2 & sau đó đem mảng này gán đi đâu mà chả được (?)
Mình tìm hiểu cách biến từ mảng to thành mảng nhỏ b ạ
Bài đã được tự động gộp:

Vui phết, đc bao nhiêu người dạy, mỗi vba thì lại chưa học đc thêm gì
 
Upvote 0
Có vẻ như bạn nên viết iêu cầu từ bài đầu là vầy:

. . . Mình khai báo mảng 1 ( & ví dụ mảng đã lấy dữ liệu từ vùng nào đó rồi (Đặt tên là Mang1)),

Mình muốn:
1. Tạo một Mảng 2 (Mang2) dựa trên Mang1, nhưng dữ liệu chỉ gồm từ vài hàng & vài cột từ mang1, & sau đó gán trị Mang2 lẹn ô A1 của trang tính nào đó như Sheets KQ1
. . . . .
$$$$@
 
Upvote 0
Mình tìm hiểu cách biến từ mảng to thành mảng nhỏ b ạ
...
Vui phết, đc bao nhiêu người dạy, mỗi vba thì lại chưa học đc thêm gì
Trên đời thiếu giống gì chuyện học một hiểu mười, nhưng cũng đâu thiếu chuyện mài đũng quần chục năm bao nhiêu cơm cha áo mẹ công thầy trả về một cái lá mít đặc.
Thời buổi kinhn tế thị trường, học trò kén cá chọn canh là tại họ có tiền. Ở đây có trả tiền đâu mà đòi theo ý mình. Học mà cứ vướng cái cục tự ái ở trên đầu thì ba năm cũng còn cái cục ấy.

Muốn học mà không biết nhìn thầy thì hỏi cả chục câu không học được một chữ là lẽ thường.
Ở đây có đủ người về lý thuyết lẫn ngườ về thực hành. Nhè ngay người giỏi nhất về thực hành mảng (không phải tôi) mà không nhìn ra, lo cười mỉm chi cọp, khinh khỉnh nhìn đời.

Mách cho lật lần sáng mắt:
Cứ lộn ngược trở về từ bài này, thấy tên người nào thì tra tìm các bài viết của người ấy. Nếu đủ chí thì học được cả khối. Nếu đủ chí mà vẫn không học được thì hãy quay lại mà nói về giá trị của những người mà mình vừa lên tiếng "khinh".
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu là mình thì lấy dữ liệu vùng [A1:C20] gán (thẳng) vô mang2 & sau đó đem mảng này gán đi đâu mà chả được (?)
Còn tuỳ theo nhiều điều kiện:
1. nếu mang1 sau khi lấy xuống rồi còn xào nấu gì đó thì mang2 muốn lấy theo kiểu nào. Lấy theo một phần của mang1 hay một phần của vàng Range mà mang1 đã từng lấy ra? Nên nhớ là sau khi gán Range cho mang1 thì Raneg và mang1 đã là hai cá thể riêng biệt. Cả hai đều có thể đã thay đổi trước khi mang2 bước vào cuộc.
2. mang2 còn dùng làm cái gì nữa hay không? chứ nếu chỉ muốn chép một phần góc trái của mang1 thì chép dễ dàng, đâu cần mang2. (trừ phi chép phần giữa)
 
Upvote 0
Web KT

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

Back
Top Bottom