Tạo vòng lặp để thực hiện việc Click chuột (1 người xem)

Liên hệ QC

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

nhatquyelec

Thành viên mới
Tham gia
17/12/10
Bài viết
48
Được thích
2
Nghề nghiệp
Elec Engineer
Chào mọi người,
Tôi có vấn đề thế này mong mọi người giúp đỡ,
Có khi nào mọi người bị tình huống: khi copy/paste trong excel thì dường như ô copy/paste đó không được excel hiểu định dạng. Ví dụ: ngày tháng: 19/12/2016, khi copy/paste thì excel không hiểu đó là ngày tháng, chỉ đến khi Double Click vào ô đó rồi enter thì excel mới nhận dạng đó là ngày tháng, tương tự cho nhiều tình huống khác.
Vậy là tôi viết đoạn code để tạo vòng lặp để tự động Double Click vào ô rồi Enter.
Đây là đoạn mã:


Sub Macro5()
Dim i As Range
Dim oRg As Range
Set oRg = Range("A1:A10")
For Each i In oRg
ActiveCell.FormulaR1C1 = Range().Value
Next
End Sub

Nhưng sao không chạy được.
Cũng mới tập viết VBA để ứng dụng trong công việc nên mong mọi người giúp đỡ,
 
Chào mọi người,
Tôi có vấn đề thế này mong mọi người giúp đỡ,
Có khi nào mọi người bị tình huống: khi copy/paste trong excel thì dường như ô copy/paste đó không được excel hiểu định dạng. Ví dụ: ngày tháng: 19/12/2016, khi copy/paste thì excel không hiểu đó là ngày tháng, chỉ đến khi Double Click vào ô đó rồi enter thì excel mới nhận dạng đó là ngày tháng, tương tự cho nhiều tình huống khác.
Làm gì có chuyện đó bạn! Bạn record macro lệnh copy và paste để xem code.
 
Upvote 0
Chào mọi người,
Tôi có vấn đề thế này mong mọi người giúp đỡ,
Có khi nào mọi người bị tình huống: khi copy/paste trong excel thì dường như ô copy/paste đó không được excel hiểu định dạng. Ví dụ: ngày tháng: 19/12/2016, khi copy/paste thì excel không hiểu đó là ngày tháng, chỉ đến khi Double Click vào ô đó rồi enter thì excel mới nhận dạng đó là ngày tháng, tương tự cho nhiều tình huống khác.
Vậy là tôi viết đoạn code để tạo vòng lặp để tự động Double Click vào ô rồi Enter.
...
Nhưng sao không chạy được.
Cũng mới tập viết VBA để ứng dụng trong công việc nên mong mọi người giúp đỡ,


Cái này phải rất chi tiết, không thể nói chung chung vậy được.
- Vùng dữ liệu ban đầu được định là gì (Date?), dữ liệu có đúng là Date chuẩn?
- Vùng đích cần dán kết quả copy được định dạng là gì? (Date?)
- Thao tác Paste kết quả copy thực hiện như nào (ctrl+V hay paste value/ Formats?)

Thử thực hiện cách sau:
Copy số 0 (Nhập số không vào cell nào đó rồi copy) rồi chọn vùng cần chỉnh sửa >> Paste Special/ Addd/ OK
 
Upvote 0
Chào mọi người,
Tôi có vấn đề thế này mong mọi người giúp đỡ,
Có khi nào mọi người bị tình huống: khi copy/paste trong excel thì dường như ô copy/paste đó không được excel hiểu định dạng. Ví dụ: ngày tháng: 19/12/2016, khi copy/paste thì excel không hiểu đó là ngày tháng, chỉ đến khi Double Click vào ô đó rồi enter thì excel mới nhận dạng đó là ngày tháng, tương tự cho nhiều tình huống khác.
Vậy là tôi viết đoạn code để tạo vòng lặp để tự động Double Click vào ô rồi Enter.
Đây là đoạn mã:


Sub Macro5()
Dim i As Range
Dim oRg As Range
Set oRg = Range("A1:A10")
For Each i In oRg
ActiveCell.FormulaR1C1 = Range().Value
Next
End Sub

Nhưng sao không chạy được.
Cũng mới tập viết VBA để ứng dụng trong công việc nên mong mọi người giúp đỡ,

Tôi đoán chắc do chổ này nè bạn.
Hinh.jpg
 
Upvote 0
để có thể hiển thị đầy đủ format theo ngày tháng, e nghĩ a có thể dùng hàm: application.text(<Giá trị> , "dd/mm"yyyy")
ví dụ: a = 29/Apr/2016
range("a1") = application.text(a , "dd/mm"yyyy")
trong đó "dd/mm"yyyy" a có thể thay đổi tùy thích ("d-m-yy" hay "dd/mm"yyyy hh:mm" ,........)
 
Upvote 0
Thật ra cũng không biết có nên cần viết VBA không,
Cụ thể trường hợp này là vầy, tôi copy một cột ngày tháng từ 1 bảng khác rồi paste vào bảng của tôi, thì khi paste sang vẫn chọn là paste 123 (tức chỉ lấy giá trị thôi), nó vẫn hiển thị, ví dụ: 15/12/2017, paste sang vẫn là 15/12/2017, nhưng khi lọc thì nó không hiểu đó là định dạng ngày/tháng, phải Double Click vào ô đó cái xong nó mới hiểu.
Vì không biết nguyên nhân nên thôi Double Click từng ô để nó hiểu, và từ đó cũng nghĩ ra cái ý định viết VBA để Double Click tự động.
 
Upvote 0
Thì bác chọn format lại column đó thành định dạng DateTime đi bác.
Cần chi đến VBA nhỉ
 
Upvote 0
Thật ra cũng không biết có nên cần viết VBA không,
Cụ thể trường hợp này là vầy, tôi copy một cột ngày tháng từ 1 bảng khác rồi paste vào bảng của tôi, thì khi paste sang vẫn chọn là paste 123 (tức chỉ lấy giá trị thôi), nó vẫn hiển thị, ví dụ: 15/12/2017, paste sang vẫn là 15/12/2017, nhưng khi lọc thì nó không hiểu đó là định dạng ngày/tháng, phải Double Click vào ô đó cái xong nó mới hiểu.
Vì không biết nguyên nhân nên thôi Double Click từng ô để nó hiểu, và từ đó cũng nghĩ ra cái ý định viết VBA để Double Click tự động.

Có mấy vấn đề cần phải làm rõ:
1> Khi dữ liệu nguồn là chuẩn DATE, nếu bạn copy rồi paste values thì chắc chắn bạn sẽ nhận được kết quả là những con số. Chẳng hạn 2/11/2016 (ngày 2 tháng 11) sau khi paste values sẽ cho kết quả là 42676. Trong trường hợp này, chỉ cần format cells cho kết quả là xong
2> Khi dữ liệu nguồn chỉ là TEXT, nếu bạn copy rồi paste values thì điều đương nhiên nguồn thế nào kết quả sẽ y chang vậy mà không có bất cứ thay đổi nào. Trường hợp này khá nguy hiểm nếu bạn double click vào cell, bởi kết quả nhận được sẽ tùy thuộc vào setting trong control panel trên máy bạn. Ví dụ với chuỗi 2/11/2016 (ngày 2 tháng 11), nếu control panel đang thiết lập d/M/yy thì bạn sẽ nhận kết quả là ngày 2 tháng 11 năm 2016 (đây là trường hợp bạn may mắn), Trong khi nếu control panel thiết lập M/d/yy thì kết quả sẽ là ngày 11 tháng 2 năm 2016 (sai cả dặm)
-------------------------------
Vậy theo tôi, điều bạn cần làm là xác định rõ dữ liệu nguồn thuộc dạng gì: là TEXT hay DATE, nếu là TEXT thì nó đang được sắp xếp theo kiểu d/M hay M/d. Đã xác định rõ ràng rồi, bạn có thể dùng công thức hoặc VBA để biến đổi chúng thành chuẩn DATE thật sự mà không cần phải double click vào cell gì gì đó như ý tưởng của bạn (bởi có làm được thì khả năng nhận kết quả sai sẽ rất cao)
 
Upvote 0
dữ liệu gốc định dạng là DATE rồi, lúc lọc dữ liệu gốc nó vẫn hiểu là DATE, khi paste sang một file eXcel khác chẳng hạn thì nó vẫn hiện là ngày tháng năm nhưng lọc thì nó không nhóm thành ngày tháng năm chứng tỏ nó không phải là định dạng DATE/time, chỉ khi double click vào thì nó mới hiểu.
ĐÚng như anh "ndu96081631" nói, không cẩn thận là ngày với tháng cứ đảo nhau loạn cả lên,
 
Upvote 0
gửi các bạn giúp đỡ,
trong cột A, B có bôi đỏ là ngày giờ, nhưng hiện tại excel không hiểu chỉ có khi Double Click vào thì nó mới hiểu, đó chỉ là vài dòng, còn cả nghìn dòng thì chắc không Đúp nổi
Mong mọi người xem và giúp đỡ,
 

File đính kèm

Upvote 0
gửi các bạn giúp đỡ,
trong cột A, B có bôi đỏ là ngày giờ, nhưng hiện tại excel không hiểu chỉ có khi Double Click vào thì nó mới hiểu, đó chỉ là vài dòng, còn cả nghìn dòng thì chắc không Đúp nổi
Mong mọi người xem và giúp đỡ,

Để giải quyết nhanh bài này, đầu tiên bạn phải bảo đảm rằng control panel trên máy bạn đang thiết lập d/M/yy (ngày trước tháng sau)
Tiếp theo vào bảng tính vào làm như sau:
- Quét chọn 2 cột dữ liệu rồi bấm Ctrl + H (mở hộp Find and Replace)
- Khung Find what gõ dấu /
- Khung Replace with cũng gõ dấu /
- Bấm Replace All
Xong
 
Upvote 0
Web KT

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

Back
Top Bottom