-
Code VBA Access thiết lập Icon Sets cho Excel
Minh Tiên > 29-10-20, 11:16 AM
Nhờ ACE Pro giúp đỡ !
Tiên có bài toán xuất dữ liệu ra Acc => Excel đã thực hiện OK (Format Font, border, Number, Hightlight) Tiếp theo Tiên muốn thiết lập Icon Sets Conditional Formatting cho cột dữ liệu nhưng không biết cách kết hợp. Tiên đã tham khảo Macro Excel và chỉnh cho đoạn code của mình như sau:
Mã:Function Insert_iCon(oExcelWrSht As Object, StrRange As String)
With oExcelWrSht.Range(StrRange).Select
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With .Selection.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3Arrows)
End With
Selection.FormatConditions(1).IconCriteria(1).Icon = xlIconRedDownArrow
With .Selection.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 7
.Icon = xlIconYellowDash
End With
With .Selection.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 5
.Icon = xlIconGreenUpArrow
End With
End With
End Function
Nhưng khi chạy đến dòng 2 thì đã báo lỗi Run-time eror "424": Object required
Nhờ ACE pro chỉ giáo gỡ lỗi giúp.
Cảm ơn nhiều ! -
RE: Code VBA Access thiết lập Icon Sets cho Excel
Minh Tiên > 29-10-20, 06:01 PM
Sau khi mày mò gỡ lỗi từng dòng lệnh, mình đã giải quyết được yêu cầu của mình. Code:
Mã:Function Format_iConTangGiam(oExcelWrSht As Object, StrRange As String)
With oExcelWrSht.Range(StrRange)
.FormatConditions.Delete
.FormatConditions.AddIconSetCondition
.FormatConditions(.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = .Application.ActiveWorkbook.IconSets(xl3Arrows)
End With
.FormatConditions(1).IconCriteria(1).Icon = xlIconRedDownArrow
With .FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 7
.Icon = xlIconYellowDash
End With
With .FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 5
.Icon = xlIconGreenUpArrow
End With
End With
End Function
Vì là kết nối muộn nên khai báo thêm các biến toàn cục:
Mã:Public Const xl3Arrows = 1
Public Const xlIconRedDownArrow = 3
Public Const xlIconGreenUpArrow = 1
Public Const xlConditionValueNumber = 0
Public Const xlIconYellowDash = 46
Chương trình đã chạy theo y/c của mình.
Thanks cả nhà quan tâm ! -
RE: Code VBA Access thiết lập Icon Sets cho Excel
ongke0711 > 29-10-20, 06:33 PM
Bạn không tính xuất ra một template Excel với các định dạng sẳn cho nhanh à? Hay dữ liệu xuất này không cố định cột? -
RE: Code VBA Access thiết lập Icon Sets cho Excel
Xuân Thanh > 31-10-20, 03:47 PM
Nếu không khai báo biến toàn cục thì gán thẳng giá trị cho biến cũng được bởi access không hiểu định nghĩa giá trị các biến của macro excel khi khai báo muộn -
RE: Code VBA Access thiết lập Icon Sets cho Excel
Minh Tiên > 03-11-20, 09:47 AM
(29-10-20, 06:33 PM)ongke0711 Đã viết: Bạn không tính xuất ra một template Excel với các định dạng sẳn cho nhanh à? Hay dữ liệu xuất này không cố định cột?
Dữ liệu của mình xuất không cố định. Khi xuất tạo File mới (Nếu chưa có File), còn nếu đã có thì mở lên tạo thêm Sheet và xuất tiếp (nên không xuất qua file excel Temp).
Hiện do có thể phải xuất một hay nhiều nội dung (Mỗi nội dung có thể ở 1 sheet hoặc nhiều sheet - Tùy theo yêu cầu (Khai báo dòng xuất và cột xuất), sau khi xuất sẽ format, sum, hightight, set icon biểu thị cho tăng giảm, ...) nên mình tạo nhiều class, mỗi class đảm nhiệm một nội dung.
Hiện đã xuất thành công theo yêu cầu. Tuy nhiên mỗi class khi xuất phải mở/tạo Excel => Xuất => Lưu => Đóng nên chương trình nên còn chậm nếu chọn xuất 1 lúc nhiều nội dung.
Mình đang nghiên cứu cách: Nếu xuất nhiều nội dung, chỉ cần mở 1 lần, xuất hết, lưu, rồi đóng (Ko phải đóng mở nhiều lần). Mình ko rãnh code bên Excel lắm nên đang mày mò/test từng dòng lệnh.
ACE nào có kinh nghiệm, xin chia sẽ giúp.
Thân./. -
RE: Code VBA Access thiết lập Icon Sets cho Excel
ongke0711 > 03-11-20, 08:50 PM
(03-11-20, 09:47 AM)Minh Tiên Đã viết: Hiện do có thể phải xuất một hay nhiều nội dung (Mỗi nội dung có thể ở 1 sheet hoặc nhiều sheet - Tùy theo yêu cầu (Khai báo dòng xuất và cột xuất), sau khi xuất sẽ format, sum, hightight, set icon biểu thị cho tăng giảm, ...) nên mình tạo nhiều class, mỗi class đảm nhiệm một nội dung.
Hiện đã xuất thành công theo yêu cầu. Tuy nhiên mỗi class khi xuất phải mở/tạo Excel => Xuất => Lưu => Đóng nên chương trình nên còn chậm nếu chọn xuất 1 lúc nhiều nội dung.
Bạn rảnh thì cắt, gửi dữ liệu demo về việc xuất nhiều nội dung, nhiều sheet xem thử nhé.
Tôi thấy khi mở một phiên làm việc Excel rồi, có thể tự động Add Sheet theo tên rồi đổ dữ liệu vô cho nó mà. -
RE: Code VBA Access thiết lập Icon Sets cho Excel
thuyyeu99 > 03-11-20, 09:32 PM
(03-11-20, 08:50 PM)ongke0711 Đã viết:
Lâu lâu rảnh Comment hihi, anh nói em cũng cùng quan điểm, @minh tiên nói em chưa hình dung tới độ phúc tạp nó ra làm sao em cũng tò mò quá(03-11-20, 09:47 AM)Minh Tiên Đã viết: Hiện do có thể phải xuất một hay nhiều nội dung (Mỗi nội dung có thể ở 1 sheet hoặc nhiều sheet - Tùy theo yêu cầu (Khai báo dòng xuất và cột xuất), sau khi xuất sẽ format, sum, hightight, set icon biểu thị cho tăng giảm, ...) nên mình tạo nhiều class, mỗi class đảm nhiệm một nội dung.
Hiện đã xuất thành công theo yêu cầu. Tuy nhiên mỗi class khi xuất phải mở/tạo Excel => Xuất => Lưu => Đóng nên chương trình nên còn chậm nếu chọn xuất 1 lúc nhiều nội dung.
Bạn rảnh thì cắt, gửi dữ liệu demo về việc xuất nhiều nội dung, nhiều sheet xem thử nhé.