Code này của Ndu tôi edit 1 chút.Xin các bác chỉ dáo em có một file excel muốn thay những số 10 000.00 bằng 10000, 20 000.00 bằng 20000 và những số tiếp theo, giờ em muốn viết một đoạn macro để tự động thay thế bác nào biết chỉ giúp em với
Function TachSo(Cell As Range) As Double
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Temp.Pattern = "[^0-9]"
TachSo = Temp.Replace(Cell, "")
TachSo = TachSo / 100
End Function
Thay vì "hỏi", bạn cứ "thí nghiệm" trước điMấy anh chị ơi, em muốn filter - contains dựa trên 1 biến mình nhập vào thì làm thế nào ạh, em thấy nó chỉ cho filter một chuỗi có sẵn.
ví dụ : em muốn thay "2009-11-04" bằng 1 biến được ko ạh?
Sheets("temp").Activate
Range("A1:O1").AutoFilter field:=4, Criteria1:="*2009-11-04*" & "*", Operator:=xlAnd
em thử nhiều rồi nhưng không biết cách nào ạh, vì em muốn filter các event diễn ra theo biến thời gian, ví dụ từ hôm qua đến hôm nay. khi dùng cú pháp filter - contains - "*&biến*" thì nó hiểu là chuỗi &biến chứ không có lấy giá trị của biến, mong anh chỉ giáo ạhThay vì "hỏi", bạn cứ "thí nghiệm" trước đi
Quá trình thí nghiệm bị trục trặc thế nào hãy hỏi tiếp
Nói chung, câu trả lời của tôi là ĐƯỢC
Bạn đã thử thế nào?em thử nhiều rồi nhưng không biết cách nào ạh, vì em muốn filter các event diễn ra theo biến thời gian, ví dụ từ hôm qua đến hôm nay. khi dùng cú pháp filter - contains - "*&biến*" thì nó hiểu là chuỗi &biến chứ không có lấy giá trị của biến, mong anh chỉ giáo ạh
Ôi trời... Cột D của bạn là dạng Text thì làm sao mà Filter từ khoảng này đến khoảng kia được hả bạn!Nó không có báo lỗi nhưng em không biết filter từ data là 1 biến mình nhập vào nên làm sai kết quả. Mục đích là em filter các events diễn ra trong 1 khoảng thời gian phù hợp. Em mới làm marco nên còn gà ạh Mong anh chỉ giáo.
Ôi trời... Cột D của bạn là dạng Text thì làm sao mà Filter từ khoảng này đến khoảng kia được hả bạn!
Ít ra cột D và E phải đúng chuẩn DATE thì mới tính tiếp được
Thêm nữa: Date mà bạn dùng InputBox để nhập là.. thua rồi (quá dở)
----------------
Tôi sửa lại dử liệu của bạn cho đúng chuẩn và Filter đây, bạn xem file đính kèm
Bạn thử chuyển bằng cách lấy cell đó *1 xem sao.Thanks anh, nhưng dữ liệu em lấy về là dạng TEXT, chuyển sang dạng DATE thì làm thế nào? Cái inputbox thì em test chơi thôi hehe, gà mới ra chơi mà đại ca.... trong code anh viết chuyển DATE sang số thực để so sánh ,"[] " trong CDbl([xx]) có ý nghĩa gì vậy ... Em gà mong anh thông cảm, mới học thì hay hỏi này hỏi kia biết 1 tý mới có cảm hứng chứ tự làm hoài 1 cái gì đó ko ra thì cũng nản... hehe
Có thể sẽ không được... vì tôi để ý thấy mấy dử liệu test này có chứa ký tự CHAR(160) ở phía sau đấy ---> Dùng Find and Replace giải quyết nó là tiện nhấtBạn thử chuyển bằng cách lấy cell đó *1 xem sao.
.
Bạn gửi file Excel 2003 xem thử dữ liệu thế nào nhé, file của bạn gửi tôi không mở được.Nhưng thời gian nó thay đổi, mình phải find and replace từng cells hay sao anh ? em replace rồi chọn format của cái được replace nhưng nó không chuyển sang format mình cần ?!? , mấy anh hướng dẫn cụ thể được ko?
Nó đây... Bạn làm 1 bài hướng dẩn đi nhéBạn gửi file Excel 2003 xem thử dữ liệu thế nào nhé, file của bạn gửi tôi không mở được.
Thầy ơi em không dùng replace mà em dùng hàm để chuyển đổi vậy.Nó đây... Bạn làm 1 bài hướng dẩn đi nhé
Thế còn ngày tháng bỏ luôn à?Thầy ơi em không dùng replace mà em dùng hàm để chuyển đổi vậy.
Vậy thì em thêm hàm DATEVALUE vào luôn là đượcThế còn ngày tháng bỏ luôn à?
Tôi cứ tưởng mục đích của ta là: chuyển DATE từ dạng TEXT sang DATE CHUẨN chứ
Theo cách hiểu của tôi thì ý tác giả không phải vậy:Vậy thì em thêm hàm DATEVALUE vào luôn là được