Định dạng cho mảng

Blue Softs Liên hệ QC

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
253
Được thích
44
Kính thưa Anh chị
Giả sử trong mảng để định dạng cho nó viết hoa thì em dùng KQ (i,1) = Ucase(Arr(i,2)); Cột Arr(j,1) bình thường định dạng là ngày tháng năm dd/mm/yyyy, nếu giờ em muốn định dạng lại kiểu mm/dd/yyyy thì làm thế nào ạ. Kiểu thế này nhưng sẽ là sai KQ (i,1) = Text(Arr(i,2),"mm/dd/yyyy") => Định dạng lại kiểu này thế nào trong code VBA ạ.
 

vanthinh3101

Thành viên tích cực
Tham gia
24/1/15
Bài viết
1,049
Được thích
1,315
Giới tính
Nam
Nghề nghiệp
Banker
Kính thưa Anh chị
Giả sử trong mảng để định dạng cho nó viết hoa thì em dùng KQ (i,1) = Ucase(Arr(i,2)); Cột Arr(j,1) bình thường định dạng là ngày tháng năm dd/mm/yyyy, nếu giờ em muốn định dạng lại kiểu mm/dd/yyyy thì làm thế nào ạ. Kiểu thế này nhưng sẽ là sai KQ (i,1) = Text(Arr(i,2),"mm/dd/yyyy") => Định dạng lại kiểu này thế nào trong code VBA ạ.
Dùng Format bạn ạ.
Mã:
KQ(i,1) = Format(Arr(i,2),"mm/dd/yyyy")
 
Upvote 0

VetMini

Chuyên gia GPE
Tham gia
21/12/12
Bài viết
12,350
Được thích
15,911
Kính thưa Anh chị
Giả sử trong mảng để định dạng cho nó viết hoa thì em dùng KQ (i,1) = Ucase(Arr(i,2)); Cột Arr(j,1) bình thường định dạng là ngày tháng năm dd/mm/yyyy, nếu giờ em muốn định dạng lại kiểu mm/dd/yyyy thì làm thế nào ạ. Kiểu thế này nhưng sẽ là sai KQ (i,1) = Text(Arr(i,2),"mm/dd/yyyy") => Định dạng lại kiểu này thế nào trong code VBA ạ.

Ở GPE bao nhiêu lâu rồi. Học VBA bao nhiêu lâu rồi mà vẫn còn cái dạng nói về "sai" như vầy sao?
Diễn tả cho rõ "sai" như thế nào. Không làm được? VBA không chấp nhận? VBA chấp nhận nhưng kết quả không như ý muốn?

Hầu hết, nếu không muốn nói là tất cả, các hàm dùng trên bảng tính đều được gói bên trong WorksheetFunction. Tức là có thể gọi được chúng qua đối tượng WorksheetFunction.
Mặt khác, đối tượng WorksheetFunction cũng cho phép đối tượng Application lọc lại các hàm của nó.

Muốn sử dụng hàm của một đối tượng thì cứ theo ngữ pháp tenDoiTuong.Ham(thamSo,...)

Như vậy, nếu trên bảng tính có thể dùng Text( ngày, "mm/dd/yyyy" ) thì VBA cũng có thể dùng Application.Text( ngày, "mm/dd/yyyy" )

Sub gt()
MsgBox Application.Text(Now, "mm/dd/yyyy")
End Sub
(hiển thị 10/15/2021)

Lưu ý: vấn đề này hoàn toàn chả liên quan gì đến "mảng" cả. Có lẽ bạn mê mảng quá nên ngủ nằm mơ cũng nhắc từ "mảng".
Gọi cho đúng thì là "VBA: cách định dạng text cho ngày tháng"
 
Lần chỉnh sửa cuối:
Upvote 0

befaint

|||||||||||||
Tham gia
6/1/11
Bài viết
12,458
Được thích
15,514
Theo tình hình này thì thớt còn khá lâu mới kiểm soát được bảng tính.
VBA tưởng chừng đơn giản, nhưng lại rất lòng vòng, rất khó hiểu... ở khúc đọc/ ghi với dữ liệu DateTime, number.
Bởi chúng hiển thị phụ thuộc vào thiết lập của hệ điều hành, trừ khi trên bảng tính đã định dạng Text.
Vậy nên trên VBA format DateTime không có tác dụng gì, trừ trường hợp ghép chuỗi.
Ngon lành nhất là cứ để ở dạng number, định dạng ra sao thì thiết lập trên bảng tính.
 
Upvote 0
Top Bottom