Hỏi nhanh - Đáp nhanh về macro (dành cho các thành viên mới học lập trình)

Liên hệ QC

tuananhya2

Thành viên mới
Tham gia
18/8/12
Bài viết
8
Được thích
0
Co ai chỉ dùm cách tạo pass marco với
 
  1. Trong cửa sổ VBA Editor, vào menu Tools>VBAProject Properties.
  2. Hiện lên 1 cái cửa sổ, chọn tiếp tab Proctection:

  • Chọn Lock Project for viewing.
  • Đánh 2 ô password ở dưới (Password/Confirm). Nhấn Ok, tò mò thì nhấn Help.
Sau khi đóng file và mở file lại thì mới có hiệu lực. Muốn xem Code thì nhấn vào cây Project bên tay trái.
Tính post hình minh họa mà nản với mấy cái hình thumbnail wa.​
 
Lần chỉnh sửa cuối:
Upvote 0
Nhận thấy các thành viên mới học VBA thường hay hỏi những câu đơn giản liên quan đến việc xử lý code.. vân vân... và các bạn đã mở nhiều topic đến mức không còn quản lý được
Hôm nay tôi lập topic này. Các bạn, những ai mới học lập trình nếu có câu hỏi về macro (thuộc dạng đơn giản) vui lòng gửi bài vào đây nhé!
Cảm ơn!
ANH TUẤN
 
Upvote 0
Hỏi về code tự động mở khóa password Open của file để links dữ liệu!

Xin chào mọi người!
Em đang làm một file tổng hợp dữ liệu links từ các file con..
Nhưng các file con này đều đặt password open file.. do vậy mỗi lần em bấm nút "Update" là nó hiện lên cửa sổ đòi nhập pass và em phải mất công nhập pass nhiều lần. Nếu nhập sai pass coi như cả đoạn code cũng bị lỗi.

Do vậy em muốn hỏi là có cách nào thực hiện mở pass Open file = code được không.

Ví dụ:em để code update trong file tổng hợp
Em muốn links dữ liệu từ file A có pass là 123 và file B có pass là 456 vậy em phải viết code cho đoạn này thế nào để nó không đòi nhập pass khi mình thực hiện lệnh update nữa..

Mong được giúp đỡ.
Xin cám ơn!
 
Upvote 0
Xin chào mọi người!
Em đang làm một file tổng hợp dữ liệu links từ các file con..
Nhưng các file con này đều đặt password open file.. do vậy mỗi lần em bấm nút "Update" là nó hiện lên cửa sổ đòi nhập pass và em phải mất công nhập pass nhiều lần. Nếu nhập sai pass coi như cả đoạn code cũng bị lỗi.

Do vậy em muốn hỏi là có cách nào thực hiện mở pass Open file = code được không.

Ví dụ:em để code update trong file tổng hợp
Em muốn links dữ liệu từ file A có pass là 123 và file B có pass là 456 vậy em phải viết code cho đoạn này thế nào để nó không đòi nhập pass khi mình thực hiện lệnh update nữa..

Mong được giúp đỡ.
Xin cám ơn!
Có thể bài này giúp được bạn!
http://www.giaiphapexcel.com/forum/showthread.php?71093-Tự-động-nhập-password-khi-mở-file-excel
 
Upvote 0
Rất cám ơn! Em sẽ tìm hiểu..
Nhưng em vẫn mong có thêm sự trợ giúp cụ thể cho bài viết trên.
 
Upvote 0
Rất cám ơn! Em sẽ tìm hiểu..
Nhưng em vẫn mong có thêm sự trợ giúp cụ thể cho bài viết trên.
Chắc đại loại là thế này. Giả sử pass của bạn là 123456789
PHP:
Sub mo_file()
Dim pass
pass = Application.InputBox("Nhap Pass:")
If pass <> 123456789 Then Exit Sub
Workbooks.Open duongdantenfile, , , , pass
End Sub
 
Upvote 0
Chào các bạn
Mình đang có khối từ ô D10 đến ô D30000, khối ô này là ngày tháng (định dạng theo kiểu dd/mm/yy) bây giờ trong khối cell này có lẫn một số ô không phải là ngày tháng (ví dụ: '03/02/12 hoặc abc, ....)
Bây giờ mình muốn các bạn giúp code để duyệt tất cả các ô trên, nếu ô nào kg phải là kiểu ngày tháng nói trên hoặc là test ... thì code sẽ tô ô bị lỗi màu đỏ! (nếu có bảng thông báo cell nào bị lỗi thì càng tốt)
Xin cảm ơn các bạn!
 
Upvote 0
Chào các bạn
Mình đang có khối từ ô D10 đến ô D30000, khối ô này là ngày tháng (định dạng theo kiểu dd/mm/yy) bây giờ trong khối cell này có lẫn một số ô không phải là ngày tháng (ví dụ: '03/02/12 hoặc abc, ....)
Bây giờ mình muốn các bạn giúp code để duyệt tất cả các ô trên, nếu ô nào kg phải là kiểu ngày tháng nói trên hoặc là test ... thì code sẽ tô ô bị lỗi màu đỏ! (nếu có bảng thông báo cell nào bị lỗi thì càng tốt)
Xin cảm ơn các bạn!
Bạn dùng thử code này
Mã:
Sub Test()
Dim cls As Range
For Each cls In [D10:D3000]
    If Not IsDate(cls) Then
        cls.Interior.ColorIndex = 10
    End If
Next
End Sub
 
Upvote 0
Bạn dùng thử code này
Mã:
Sub Test()
Dim cls As Range
For Each cls In [D10:D3000]
    If Not IsDate(cls) Then
        cls.Interior.ColorIndex = 10
    End If
Next
End Sub
Hic 30 000 dòng mà chơi từng cell mình nghi là ngồi uống hết ly cafe cũng chưa xong.
Hay là mình đưa lên mảng xử nó thế này
PHP:
Sub test()
Dim dl(), i, Res As String
dl = Range([D10], [D65536].End(3)).Value
For i = 1 To UBound(dl)
   If Not IsDate(dl(i, 1)) Then
      Res = Res & "," & "D" & i + 9
   End If
Next
Res = Replace(Res, ",", "", 1, 1)
Range(Res).Interior.ColorIndex = 6
End Sub
 
Upvote 0
Chào các bạn
Mình đang có khối từ ô D10 đến ô D30000, khối ô này là ngày tháng (định dạng theo kiểu dd/mm/yy) bây giờ trong khối cell này có lẫn một số ô không phải là ngày tháng (ví dụ: '03/02/12 hoặc abc, ....)
Bây giờ mình muốn các bạn giúp code để duyệt tất cả các ô trên, nếu ô nào kg phải là kiểu ngày tháng nói trên hoặc là test ... thì code sẽ tô ô bị lỗi màu đỏ! (nếu có bảng thông báo cell nào bị lỗi thì càng tốt)
Xin cảm ơn các bạn!

code thì đã có các bậc lão thành làm rồi, mình thử làm bằng chức năng có sẳn của excel (nhân tiện chủ đề của bạn học thêm, excel 2010)
bước 1: bạn chọn vùng số liệu của bạn --->tab home--->format as table, chọn color bạn thích.
excel sẻ tự động đặt filter lọc ra các cell có format khác
bước2:chọn conditional formating --->Top/Button rule--->Top 10 items
nó sẻ lọc ra những cell có cùng formating

mình test hơn chục dòng thấy đúng, nhiều hơn nữa chưa thử.
 
Lần chỉnh sửa cuối:
Upvote 0
Hic 30 000 dòng mà chơi từng cell mình nghi là ngồi uống hết ly cafe cũng chưa xong.
Hay là mình đưa lên mảng xử nó thế này
PHP:
Sub test()
Dim dl(), i, Res As String
dl = Range([D10], [D65536].End(3)).Value
For i = 1 To UBound(dl)
   If Not IsDate(dl(i, 1)) Then
      Res = Res & "," & "D" & i + 9
   End If
Next
Res = Replace(Res, ",", "", 1, 1)
Range(Res).Interior.ColorIndex = 6
End Sub
Code của anh, nếu ngày tháng có định dạng có dấu nháy đơn fía trước thì kg bị báo lỗi!
em cảm ơn
 
Upvote 0
Code của anh, nếu ngày tháng có định dạng có dấu nháy đơn fía trước thì kg bị báo lỗi!
em cảm ơn

Đương nhiên rồi, dùng IsDate sẽ không chính xác, nó không phân biệt được đâu là ngày thật sự và đâu là dạng Text có chứa ngày (cụ thể nó xem '03/02/12 cũng là Date luôn)
Có chăng nên dùng VarType để kiểm tra ---> If VarTye(Giá trị) <> 7 then
 
Upvote 0
Đương nhiên rồi, dùng IsDate sẽ không chính xác, nó không phân biệt được đâu là ngày thật sự và đâu là dạng Text có chứa ngày (cụ thể nó xem '03/02/12 cũng là Date luôn)
Có chăng nên dùng VarType để kiểm tra ---> If VarTye(Giá trị) <> 7 then
Đúng là nhờ liều mạng viết code nên mới học được thêm cái hàm VarType. Lúc viết cũng biết là không đúng với yêu cầu nhưng mình nghĩ là sẽ có người phát hiện và cho ra giải pháp.
Cảm ơn anh NDU
 
Upvote 0
em viết một macro print, khi macro chạy thì nó hiện một form thông báo in (tự động) có cách nào không hiện thông báo gì mà in luôn không? giống như thêm câu như thêm application.screenupdate = false là màn hình nó không động đậy gì.
 
Upvote 0
em viết một macro print, khi macro chạy thì nó hiện một form thông báo in (tự động) có cách nào không hiện thông báo gì mà in luôn không? giống như thêm câu như thêm application.screenupdate = false là màn hình nó không động đậy gì.
Nhưng sao bạn không cho mọi người xem code?
 
Upvote 0
có gì mà phải xem hả bác
nếu cần thì đây ạ

PHP:
sub print_click()
' them gi vao day de khong hien thong bao in
selection.printout from:=1,to:=1;copies :=1
' cap nhat lai trang thai cu
end sub
Theo mình thì câu lệnh trên đã in ra rồi, không có cài gì để hiện thông báo lên màn hình cả.
Kiên nhẫn đợi câu trả lời khác xem sao.
 
Upvote 0
Web KT
Back
Top Bottom