Tự động đồng ý chạy marco khi mở file và code để marco tự chạy

Liên hệ QC

momvip9

Thành viên mới
Tham gia
23/10/09
Bài viết
6
Được thích
0
Các anh chị giúp em làm thế nào để mỗi lần mở file excel lên nó không hiện ra cái security warning, vì mỗi lần em mở file excel ra nó lại báo và em phải chọn enable marco, thấy bất tiện quá, mà file đó em chỉ ghi mỗi một cái marco để lọc bằng Advacen filter.

Em có một sheet Data tổng hợp. Một sheet khác em tạo một vùng điều kiện lọc, một vùng kết quả lọc, em ghi lại quá trình lọc bằng macro và gán phím tắt Ctrl+Z. Mỗi lần em thay giá trị trong ô điều kiện lọc và bấm Ctrl+z thì marco sẽ thực hiện lọc theo điều kiện mới. (trong ô điều kiện lọc của em là một danh sách Data validation để chọn điều kiện lọc cho dễ)

Chỉ có mỗi một marco đó thôi và em muốn là mỗi lần mở file excel đó ra thì marco đó tự động được enable chứ không phải nhìn thấy cái cảnh báo security warning mỗi khi mở file nữa. Có cách là chọn mức bảo vệ Low gì gì đó cho tất cả các marco nhưng cái đó là chung cho tất cả các file excel mà em không muốn dùng cái đó vì khi mở các file excel khác vẫn có khả năng có code độc hại đến máy tính.

Thứ hai là cái marco dùng để lọc Advance Filter, thay vì mỗi lần chọn giá trị trong vùng điều kiện xong phải bấm Ctrl+z để chạy marco thì có cách nào để mỗi lần em chọn giá trị lọc trong danh sách Data validation xong thig marco tự chạy luôn không. Em biết là có đoạn code để thự hiện một lênh nào đó khi có thay đổi giá trị trong một ô nhưng em không hiểu về cách viết code lắm

Ví dụ viết một code để mỗi khi giá trị của ô A3 thay đổi thì sẽ thực hiện lệnh Marco3 thì viết thế nào ạ?
 
Trả lời câu (2)

Ở trang tính bạn đã tạo vùng điều kiện bạn dùng macro sự kiện, như sau
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [B3]) Is Nothing Then
   AdvancsdFilter
 End If
End Sub
Giải thích thêm:

(1) [B3] là ô bạn thay đổi điều kiện lọc để có kết quả mới khác;

(2) AdvancedFilter là tên macro mà bấy lâu nay bạn dùng {CTRL}+z để chạy nó.
 
Upvote 0
Ở trang tính bạn đã tạo vùng điều kiện bạn dùng macro sự kiện, như sau
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [B3]) Is Nothing Then
   AdvancsdFilter
 End If
End Sub
Giải thích thêm:

(1) [B3] là ô bạn thay đổi điều kiện lọc để có kết quả mới khác;

(2) AdvancedFilter là tên macro mà bấy lâu nay bạn dùng {CTRL}+z để chạy nó.

Cảm ơn anh rất nhiều! Em đã làm được rồi.

Về vấn đề tự động Enable một cái Marco duy nhất mỗi khi mở file thì có lần em đã dowm trên diễn đàn một cái file dùng để chuyển file .xls thành file .exe. Làm như thế có thể hoàn toàn làm cho Security Warning ko hiện ra nữa mà marco vẫn chạy được.

Em làm một file excel hệ thông văn bản và tài liệu để thuận tiện tra cứu, chia sẻ cho mọi người trong công ty dùng trong công việc. Trong file excel của em có đặt các hyperlink tới các file văn bản để muốn tra cứu văn bản gì thì nhắp chuột vào link sẽ mở văn bản đó ra. Khổ cái nếu copy dữ liệu sang ổ khác hoặc cho người khác copy sang máy của họ mà không đúng folder như mình đặt trong máy mình thì cái link đó sẽ toi luôn, bấm vào không mở văn bản ra được nữa.

Em đã khắc phục được lỗi đó bằng cách là dùng hàm Cell để ra kết quả là vị trí của file excel hiện hành trong ổ cứng (đặt hàm ở ô A1), dùng hàm hyperlink để tạo liên kết và trong hàm này em dùng hàm concatenate để nối giá trị của ô $A$1tên của file muốn liên kết để tạo ra đường dẫn đến file đó, tại vì các file văn bản để cùng với file excel trong 1 folder tên là Data nên không bao giờ có chuyện liên kết bị lỗi nữa dù em có copy folder Data đi bất cứ đâu chăng nữa thì đường dẫn đến file văn bản cũng thay đổi theo.

Bây giờ lại nói đến cái vụ security warning. Có một cách khắc phục là dùng phần mềm chuyển file .xls sang file .exe. Khổ một cái là, nếu dùng cái phần mềm này thì nó sẽ chuyển cái file .xls của em vào một cái folder vô cùng xa xôi không chung folder Data nữa, cụ thể trên máy em nó sẽ là C:\Documents and Settings\Administrator\Local Settings\Temp. Thế là thôi, cái đương dẫn tới các file văn bản nó cứ là C:\Documents and Settings\Administrator\Local Settings\Temp. mà không phải ở folder Data (cho dù em đã thử chuyền cái file .xls trên về đúng folder Data cũng không được), thế là toi cái đường link đến các file văn bản, không thể nào mà tra cứu được nữa. hjx

Thế là cái phần mềm chuyển file .xls sang .exe vô tác dụng trong trường hợp này rồi. Có cách nào bỏ cái security warning đi cho khỏi bất tiện nữa không các bác
 
Upvote 0
Web KT
Back
Top Bottom