Nhờ chuyển công thức mảng sang vba (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

alibaba2209

Thành viên thường trực
Tham gia
4/12/10
Bài viết
283
Được thích
13
Nhờ anh chị! chuyển dùm công thức mảng ở cột F, J ,L sang vba, vì khi để ở công thức máng next mũi tên là nó loại load 1 lúc rất lâu.. mong được giúp đỡ!
 
em ko biết đưa giả lập đại ka à!
kích thước file lớn nên em up mediafire mong được anh chị giúp đỡ sớm!
 
Upvote 0
em ko biết đưa giả lập đại ka à!
kích thước file lớn nên em up mediafire mong được anh chị giúp đỡ sớm!

tôi nghĩ tốt nhất là viết code cho toàn bộ sheet"222"
nhưng tôi ko rỏ cách lấy dữ liệu
công thuc nay có phải là cthuc mảng ko?
tôi thực sự ko hiểu cthuc này
Mã:
C2=IF($B$2>='111'!$K$2:$K$9999,'111'!$C$2:$C$9999 & "; " & '111'!$D$2:$D$9999 & "; " & '111'!$E$2:$E$9999,"")
==============
code theo yêu cầu của bạn đây
Mã:
Sub RemoveEmptyCell()
Dim arr, arrF, arrJ, arrK As Variant, i, j, f, k As Long
Union([f2:f6000], [j2:j6000], [l2:l6000]).ClearContents
arr = [e2:l6000]
ReDim arrF(1 To UBound(arr), 1 To 1), arrJ(1 To UBound(arr), 1 To 1), arrK(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
    If arr(i, 1) <> "" Then f = f + 1: arrF(f, 1) = arr(i, 1)
    If arr(i, 5) <> "" Then j = j + 1: arrJ(j, 1) = arr(i, 5)
    If arr(i, 7) <> "" Then k = k + 1: arrK(k, 1) = arr(i, 7)
Next
[f2:f6000] = arrF
[j2:j6000] = arrJ
[l2:l6000] = arrK
End Sub
 
Upvote 0
công thuc nay có phải là cthuc mảng ko?
tôi thực sự ko hiểu cthuc này
Mã:
C2=IF($B$2>='111'!$K$2:$K$9999,'111'!$C$2:$C$9999 & "; " & '111'!$D$2:$D$9999 & "; " & '111'!$E$2:$E$9999,"")
Công thức này thuộc dạng "xàm"
Sửa thành vầy:
Mã:
=IF($B$2>='111'!$K2,'111'!$C2 & "; " &  '111'!$D2& "; " & '111'!$E2,"")
sẽ giải quyết được khối chuyện
 
Upvote 0
Bác ndu96081631 nói đúng rồi trong công thức đó em viết hơi dài dòng
Vâng đúng là như này:
=IF($B$2>='111'!$K2,'111'!$C2 & "; " & '111'!$D2& "; " & '111'!$E2,"")
Công thức ở cột E:
=IF($C$2:$C$9999=$D$2:$D$9999,$C$2:$C$9999,"") >> =IF($C2=$D2:,$C2,"")
+ Vâng viết code cho cả sheep thì tuyệt vời quá update code vba mảng vào rồi giảm được đáng kể nhưng vẫn rùa .. đại ka viết dùm cả sheep em luôn với,
 
Lần chỉnh sửa cuối:
Upvote 0
tôi nghĩ tốt nhất là viết code cho toàn bộ sheet"222"
nhưng tôi ko rỏ cách lấy dữ liệu
công thuc nay có phải là cthuc mảng ko?
tôi thực sự ko hiểu cthuc này
Mã:
C2=IF($B$2>='111'!$K$2:$K$9999,'111'!$C$2:$C$9999 & "; " & '111'!$D$2:$D$9999 & "; " & '111'!$E$2:$E$9999,"")
==============
code theo yêu cầu của bạn đây
Mã:
Sub RemoveEmptyCell()
Dim arr, arrF, arrJ, arrK As Variant, i, j, f, k As Long
Union([f2:f6000], [j2:j6000], [l2:l6000]).ClearContents
arr = [e2:l6000]
ReDim arrF(1 To UBound(arr), 1 To 1), arrJ(1 To UBound(arr), 1 To 1), arrK(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
    If arr(i, 1) <> "" Then f = f + 1: arrF(f, 1) = arr(i, 1)
    If arr(i, 5) <> "" Then j = j + 1: arrJ(j, 1) = arr(i, 5)
    If arr(i, 7) <> "" Then k = k + 1: arrK(k, 1) = arr(i, 7)
Next
[f2:f6000] = arrF
[j2:j6000] = arrJ
[l2:l6000] = arrK
End Sub
Cột F, cột J, Cột L mới là công thức mảng. đây là 1 file mà được ở mạng chia sẻ và e muốn tùy biến lại theo ý của mình, nhiều hàm và công thức e cũng chưa hiểu rõ lắm. Trong công thức mảng vd: công thức mảng ở cột F tìm giá trị trong cột E và luôn chuyển lên trên cùng.
các bác chuyển unhide sheet "nhat ki chi tiet" ẩn trong đó rồi kích nút lên xuống xem sẽ hiểu ngay
View attachment 142228View attachment 142229
Vâng viết code cho cả sheep thì tuyệt vời quá.. đại ka viết dùm em luôn với
 
Lần chỉnh sửa cuối:
Upvote 0
tôi nghĩ tốt nhất là viết code cho toàn bộ sheet"222"
nhưng tôi ko rỏ cách lấy dữ liệu
công thuc nay có phải là cthuc mảng ko?
tôi thực sự ko hiểu cthuc này
Mã:
C2=IF($B$2>='111'!$K$2:$K$9999,'111'!$C$2:$C$9999 & "; " & '111'!$D$2:$D$9999 & "; " & '111'!$E$2:$E$9999,"")
==============
code theo yêu cầu của bạn đây
Mã:
Sub RemoveEmptyCell()
Dim arr, arrF, arrJ, arrK As Variant, i, j, f, k As Long
Union([f2:f6000], [j2:j6000], [l2:l6000]).ClearContents
arr = [e2:l6000]
ReDim arrF(1 To UBound(arr), 1 To 1), arrJ(1 To UBound(arr), 1 To 1), arrK(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
    If arr(i, 1) <> "" Then f = f + 1: arrF(f, 1) = arr(i, 1)
    If arr(i, 5) <> "" Then j = j + 1: arrJ(j, 1) = arr(i, 5)
    If arr(i, 7) <> "" Then k = k + 1: arrK(k, 1) = arr(i, 7)
Next
[f2:f6000] = arrF
[j2:j6000] = arrJ
[l2:l6000] = arrK
End Sub
anh ơi! code chạy ngon rồi, nhưng làm thế làm cho nó tự động update nhỉ? mỗi lần em ấn mũi tên thì lại phải F5 1 lần
 
Upvote 0
Sao cell 2007 không lưu được Module nhỉ.. mỗi lần em insert tạo code thoát ra vào lại là mất là sao nhỉ
 
Upvote 0
Sao cell 2007 không lưu được Module nhỉ.. mỗi lần em insert tạo code thoát ra vào lại là mất là sao nhỉ

Phải lưu lại với đuôi .xlsm hoặc .xlsb
còn câu hỏi bài #11 thì bạn hãy gán cái sub đó vào cái "spin" của bạn nếu bạn muốn mỗi lần nhấp vào nó thì nó chạy
 
Upvote 0
Phải lưu lại với đuôi .xlsm hoặc .xlsb
còn câu hỏi bài #11 thì bạn hãy gán cái sub đó vào cái "spin" của bạn nếu bạn muốn mỗi lần nhấp vào nó thì nó chạy
thanks đại ka!e lưu được macro rồi nhưng cho nó luôn auto cập nhật thì như nào e chưa biết làm chưa hiểu.. a nói rõ hơn với!
Và làm sao cải thiện được tốc độ upload không ạ!
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom